| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Merkwürdiges Verhalten von EXCEL mit VBA (489 mal gelesen)
|
Gregi Mitglied
 
 Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 21. Mai. 2004 13:29 <-- editieren / zitieren --> Unities abgeben:         
Also ich denke, ich habe schon ein gewisses Grundverständnis sowohl von EXCEL als auch von VBA. Für folgendes Problem habe ich aber gar keine Vorstellung mehr, woran es liegen könnte, deshalb hört sich die Erläuterung wahrscheinlich auch etwas merkwürdig an. Also ich habe eine Funktion geschrieben, die an und für sich auch gut funktioniert. Wenn ich eine Zeile, die diese Funktion enthält kopiere, funktioniert sie auch noch einfwandfrei. Lasse ich die Zeilenkopieraktion durch ein aufgezeichnetes Makro erledigen, zeigen auf einmal alle Zellen, die die besagte Funktion beinhalten auf einmal '#Wert!' an. Wenn ich die Zeile wieder lösche ist es wieder ok oder wenn ich jede einzelne Zelle mit F2 'öffne' und gleich wieder mit Enter deaktiviere ist es auch wieder ok. Kennt jemand dieses Problem und kann mir sogar helfen? Ich hoffe, ich konnte verständlich machen, was mein Problem ist!
------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 21. Mai. 2004 14:10 <-- editieren / zitieren --> Unities abgeben:          Nur für Gregi
|
Gregi Mitglied
 
 Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 21. Mai. 2004 14:15 <-- editieren / zitieren --> Unities abgeben:         
Die Funktion, die nicht richtig funktionieren will: Public Function Auftragsbezeichnung(Nummer, Tabelle As String) As String Application.Volatile Dim lngZeilenAnzahl As Long Dim i As Integer 'Bestimmt anhand der ersten Spalte die Anzahl der Verwendeten Zeilen der übergebenen Tabelle lngZeilenAnzahl = AnzahlZeilenPruefen(Tabelle, 1) 'Die erste Spalte der übergebenen Tabelle wird auf den Übergabewert 'Nummer' überprüft 'und bei Übereinstimmung die Auftragsbezeichnung zurückgegeben For i = 2 To lngZeilenAnzahl If Sheets(Tabelle).Cells(i, 1).Value = Nummer Then Auftragsbezeichnung = Sheets(Tabelle).Cells(i, 2).Value Exit For ElseIf Nummer = "U" Then Auftragsbezeichnung = "Urlaub" Exit For ElseIf Nummer = "G" Then Auftragsbezeichnung = "Gleittag" ElseIf Nummer = "K" Then Auftragsbezeichnung = "Krank" Else Auftragsbezeichnung = "" End If Next i End Function ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 21. Mai. 2004 16:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Gregi
Hi Gregi, kannst nur mal probieren  CU Nancy --
Code:
Public Function job(Nummer As Variant) As String Application.Volatile Dim lngZeilenAnzahl As Long, wks As Worksheet Dim i As Integer Set wks = Sheets("Tabelle1") lngZeilenAnzahl = wks.Cells(Rows.Count, 1).End(xlUp).Row If IsEmpty(Nummer) Then job = "": Exit Function For i = 2 To lngZeilenAnzahl If Nummer = wks.Cells(i, 1).Value Then job = wks.Cells(i, 2).Value: Exit For End If Select Case Nummer Case Is = "U": job = "Urlaub" Case Is = "G": job = "Gleittag" Case Is = "K": job = "Krank" End Select Next i End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gregi Mitglied
 
 Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 24. Mai. 2004 08:03 <-- editieren / zitieren --> Unities abgeben:         
Danke Nancy für Deine Mühe! Mein Problem ist damit allerdings nicht verschwunden. Denke, daß ich es hier mit nem Excel Bug zu tun habe, den man höchstens mit einem Trick überwinden kann! Sonst habe ich keine Erklärung, denn eingentlich funktioniert die Funktion ja! ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 26. Mai. 2004 11:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Gregi
|
Gregi Mitglied
 
 Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 09. Jun. 2004 09:50 <-- editieren / zitieren --> Unities abgeben:         
Also jetzt funzt es komischerweise. Ich habe das Application.Volatile entfernt und seid dem scheint es zu gehen. Dachte allerdings, das ich dies schon mal probiert hatte....naja! ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |