Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code: Teil des Codes wird nicht ausgeführt

Code: Teil des Codes wird nicht ausgeführt
WalterK
Hallo,
Ich habe hier einen Code-Ausschnitt, allerdings wird der 2. Teil (also die Änderung auf "general") nicht ausgeführt. Kann mir jemand sagen, was ich ändern muss?
For I = 1 To 256
Select Case UCase(Cells(2, I))
Case "Frist", "Eintritt", "Austritt"
With Range(Cells(3, I), Cells(65536, I))
.NumberFormat = "m/d/yyyy"
.HorizontalAlignment = xlCenter
.TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1)
End With
Case "Zuname", "Vorname"
With Range(Cells(3, I), Cells(65536, I))
.NumberFormat = "general"
.TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1)
End With
End Select
Danke uns Servus, Walter
Teil des Codes wird nicht ausgeführt
03.08.2010 09:50:38
Anton
Hallo Walter,
guck die UCase-Funktion in VBA-Hilfe nach.
mfg Anton
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:07:18
JOWE
Hallo,
könnte es daran liegen, dass Du "General" klein geschrieben hast?
Gruß
Jochen
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:36:23
WalterK
Hallo,
Es liegt vermutlich schon am "ucase", denn wenn ich das herausnehme, funktioniert es wieder normal, auch wenn ich "general" schreibe. Allerdings werde ich aus der Hilfe nicht schlau.
Danke und Servus, Walter
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:38:30
Dirk
Hallo Walter,
laeuft das makro durch diesen Case?
Auf jeden Fall wuerde ich den Fomat-Befehl hinter den TextToColumn befehl stellen, da ja text in die Zelle gestellt wird und warscheinlich Deine Formatierung ueberschrieben wird.
Dirk aus Dubai
Anzeige
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:48:56
Dirk
Hallo nochmal,
noch ne kurze Erklaerung zu Case;
Case ist textsensitiv, d.h. es unterscheidet Gross- und Kleinschreibung.
Wenn du UCase(Cells(2,I)) verwendest erzeugst Du einen String, welcher komplett in Grossschrift vorliegt z.B. Ucase("Beispiel") ===> "BEISPIEL"
Damit Case greift muss Deine Referenz dem entsprechen, also CASE "BEISPIEL" = UCase("Beispiel") ,
aber Case "Beispile UCase("Beispile")
Ich hoffe, das hilft.
Gruss
Dirk aus Dubai
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:59:36
WalterK
Hallo Dirk,
ich habe ja von VBA keinen Schimmer und erstelle daher solche Codes mit dem Makrorekorder, mit der Recherche und mit Hilfe aus dem Forum.
Case unterscheidet Groß- und Kleinschreibung, soweit ist es mir klar.
Unklar ist, warum mein Code mit der Zeile "Select Case (Cells(2, I))" alle Anweisungen bearbeitet und mit der Zeile Select Case UCase (Cells(2, I)) nur die 1. Anweisung bearbeitet.
Danke und Servus, Walter
Anzeige
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 11:11:15
Anton
Hallo Walter,
mit der Zeile Select Case UCase (Cells(2, I)) nur die 1. Anweisung bearbeitet.
ich kann mir vorstellen , das die 1.Anweisung auch nicht bearbitet wird.
Teste mal folgendes Code , wenn du keine MsgBox siehst , dann wurde keine Anweisung bearbeitet.
Code:

For I = 1 To 256  
  Select Case UCase(Cells(2, I))  
    Case "Frist", "Eintritt", "Austritt"
      MsgBox UCase(Cells(2, I))
      With Range(Cells(3, I), Cells(65536, I))  
        .NumberFormat = "m/d/yyyy"
        .HorizontalAlignment = xlCenter
        .TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
          TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _  
          Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _  
          Other:=False, FieldInfo:=Array(1, 1)  
      End With  
    Case "Zuname", "Vorname"
      MsgBox UCase(Cells(2, I))
      With Range(Cells(3, I), Cells(65536, I))  
        .NumberFormat = "general"
        .TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
          TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _  
          Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _  
          Other:=False, FieldInfo:=Array(1, 1)  
      End With  
  End Select  
  Next


mfg Anton
Anzeige
Ich muss das ...
03.08.2010 11:41:58
WalterK
Hallo,
... in aller Ruhe durchtesten.
Ich melde mich dann wieder wenns funktioniert.
Danke für die Mühe und Servus, Walter
Beispiel
03.08.2010 18:16:51
WalterK
Hallo,
also irgend etwas mache ich falsch, ich bekomme den Code nicht zum Laufen.
Ich habe eine Beispieldatei erstellt:
https://www.herber.de/bbs/user/70871.xls
Vielleicht kann sich jemand das einmal anschauen.
Besten Dank und Servus, Walter
Hier das richtige Beispiel
03.08.2010 18:59:17
WalterK
Hallo,
also irgend etwas mache ich falsch, ich bekomme den Code nicht zum Laufen bzw. es werden nicht alle Formatänderungen durchgeführt.
Ich habe eine Beispieldatei erstellt:
https://www.herber.de/bbs/user/70872.xls
Vielleicht kann sich jemand das einmal anschauen.
Besten Dank und Servus, Walter
Anzeige
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:42:53
Anton
Hallo Walter,
wenn UCase , dann so:
Select Case UCase(Cells(2, I))
Case "FRIST", "EINTRITT", "AUSTRITT"
Case "ZUNAME", "VORNAME"
'...
mfg Anton
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 10:53:18
WalterK
Hallo Anton,
das verstehe ich jetzt nicht, mein Code sieht doch genau so aus.
Oder übersehe ich hier etwas?
Danke und Servus, Walter
Teil des Codes wird nicht ausgeführt
03.08.2010 10:57:29
Anton
Hallo Walter,
siehe hier.
mfg Anton
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 21:36:49
Gerd
Hallo Walter,
Du musst lediglich ueberall das umsetzen, was Anton vorgeschlagen hat.
Sub Formate()
Dim lngA As Long
Dim I As Long
For I = 1 To 256
Select Case UCase(Cells(2, I))
Case "BEGINN", "ENDE"
MsgBox UCase(Cells(2, I))
With Range(Cells(3, I), Cells(65536, I))
.NumberFormat = "m/d/yyyy"
.HorizontalAlignment = xlCenter
.TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1)
End With
Case "ZUNAME", "VORNAME"
MsgBox UCase(Cells(2, I))
With Range(Cells(3, I), Cells(65536, I))
.NumberFormat = "General"
.TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1)
End With
Case "ID"
MsgBox UCase(Cells(2, I))
With Range(Cells(3, I), Cells(65536, I))
.NumberFormat = "0"
.TextToColumns Destination:=Cells(3, I), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1)
End With
End Select
Next
End Sub
Andere Frage: Wie oft können die einzelnen Überschriften in Zeile 2 vorkommen, mehrmals ?
Gruß Gerd
Anzeige
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 21:49:29
WalterK
Hallo Gerd,
Zu Deiner Frage: Es können bis zu 20 Überschriften pro Block sein.
Ich habe den Code ausprobiert, eine Änderung des Formats tritt aber nur bei den Spalten ein, bei denen die Überschrift genau die gleiche Schreibweise wie im Makro vorliegt.
Ich dachte ich hätte alles umgesetzt, ich kann auch keinen Unterschied zu meinem Code in der Tabelle erkennen.
Servus, Walter
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 22:00:47
WalterK
Hallo,
es funktioniert doch, war mein Fehler!
Könnte es zum Problem werden, wenn es z.B. 20 Überschriften pro Block sind?
Danke und Servus, Walter
AW: Code: Teil des Codes wird nicht ausgeführt
03.08.2010 22:06:31
Gerd
Hallo Walter,
nein, falls die Überschriften-Bezeichnungen in Zeile 2 jeweils einmalig sind, ist zu der Spaltenermittlung keine Schleife über alle Spalten (1 to 256) erforderlich. Das geht dann mit Find oder Match.
Gruß Gerd
Anzeige
Danke Gerd! Servus, Walter
03.08.2010 22:09:08
WalterK

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige