Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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

VBA: Fehler in der Case-Anweisung

VBA: Fehler in der Case-Anweisung
31.05.2013 17:04:13
WalterK
Hallo,
Was ist hier falsch?
Zum Tabellenaufbau: Die Überschriften sind in der zweiten Zeile. Wenn eine Überschrift gefunden wird soll die Spalte ab der dritten Zelle entsprechend formatiert werden. Es tut sich allerdings nichts und ich komme nicht drauf.
Option Explicit
Sub CaseAnweisungTest()
Dim i As Long
For i = 1 To IIf(Len(Cells(2, Columns.Count)) = 0, Cells(2, Columns.Count).End(xlToLeft). _
Column, _
Cells(2, Columns.Count))
Select Case Cells(2, i)
Case "DATUM", "BUCHUNGSTAG", "BUCHDATUM"
With Range(Cells(3, i), Cells(100, i))
.NumberFormat = "m/d/yyyy"
.HorizontalAlignment = xlCenter
If .Application.WorksheetFunction.CountA(.Cells) > 0 Then
.TextToColumns Destination:=Cells(3, i), _
TextQualifier:=xlDoubleQuote, Tab:=True, _
Other:=False, FieldInfo:=Array(1, 1)
End If
End With
Case "PNR", "LA"
With Range(Cells(3, i), Cells(100, i))
.NumberFormat = "0"
If .Application.WorksheetFunction.CountA(.Cells) > 0 Then
.TextToColumns Destination:=Cells(3, i), _
TextQualifier:=xlDoubleQuote, Tab:=True, _
Other:=False, FieldInfo:=Array(1, 1)
End If
End With
Case "VEREINS" & Chr(10) & "KONTO" & Chr(10) & "NUMMER"
With Range(Cells(3, i), Cells(100, i))
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
If .Application.WorksheetFunction.CountA(.Cells) > 0 Then
.TextToColumns Destination:=Cells(3, i), _
TextQualifier:=xlDoubleQuote, Tab:=True, _
Other:=False, FieldInfo:=Array(1, 1)
End If
End With
End Select
Next i
End Sub
Besten Dank für die Hilfe und Servus, Walter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Fehler in der Case-Anweisung
31.05.2013 17:56:33
Peter
Hallo Walter,
formatiere das Datum einmal so

.NumberFormat = "m\/d\/yyyy"

Dann funktioniert Dein Makro bei mir.
Gruß Peter

AW: VBA: Fehler in der Case-Anweisung
31.05.2013 18:13:39
WalterK
Hallo Peter,
jetzt habe ich bemerkt, dass der Code in der ersten (1.) Spalte funktioniert.
Das "Next i" scheint falsch platziert zu sein, es werden nämlich keine weiteren Spalten abgeprüft.
Was muss ich ändern, damit bis zur letzten benutzten Spalte geprüft wird.
Danke und Servus, Walter

Code funktioniert
31.05.2013 18:11:35
Erich
Hi Walter,
auch bei mir läuft de Coxde problem,los - und tut auch noch, was er soll. :-)
Was soll der Punkt in ".Application"?
Er führt zu
Range(Cells(3, i), Cells(100, i)).Application.WorksheetFunction.CountA(...)
Das willst du vermutlich nicht so haben.
Die With-Klammer kannst du außerhalb des Select-Case ansiedeln - dann muss sie da nur einmal stehen,
ist auch effizienter.
Und TextToColumns brauchst du nur einmal im Code:

Option Explicit
Sub CaseAnweisungTest()
Dim i As Long, blnTTC As Boolean
For i = 1 To Cells(2, Columns.Count).End(xlToLeft).Column
With Range(Cells(3, i), Cells(100, i))
Select Case Cells(2, i)
Case "DATUM", "BUCHUNGSTAG", "BUCHDATUM"
.NumberFormat = "m/d/yyyy"
.HorizontalAlignment = xlCenter
blnTTC = True
Case "PNR", "LA"
.NumberFormat = "0"
blnTTC = True
Case "VEREINS" & Chr(10) & "KONTO" & Chr(10) & "NUMMER"
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
blnTTC = True
End Select
If blnTTC Then
If Application.WorksheetFunction.CountA(.Cells) > 0 Then
.TextToColumns Destination:=Cells(3, i), _
TextQualifier:=xlDoubleQuote, Tab:=True, _
Other:=False, FieldInfo:=Array(1, 1)
End If
blnTTC = False
End If
End With
Next i
End Sub
Zu deinem Problem: Kann es sein, dass man einfach nur nicht siehr, was sich tut?
Änder doch einfach mal ein paar Daten und Formate - z. B. TTT.MMM.JJ bei Datum - vor dem Prozedurstart ab.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Code funktioniert
31.05.2013 18:23:53
WalterK
Hallo Erich,
besten Dank für die Hilfe. Den Code habe ich einmal im Forum erhalten, Details dazu kann ich nicht erklären.
Im Tabellenblatt hat Dein Code jedenfalls funktioniert, ich muss ihn jetzt noch in meinen übrigen Code einbauen, ich melde mich dann nochmals.
Danke und Servus, Walter

AW: Code funktioniert
31.05.2013 19:40:08
WalterK
Hallo,
der abgeänderte Code funktioniert ausgezeichnet.
Jetzt hätte ich aber noch eine Frage zu einem anderen Thema:
Ich habe eine Tabelle mit einem Beispiel hochgeladen. Alle Zellen habe ich mit einem bestimmten Zahlenformat formatiert. Manche Zellen bleiben aber Text.
Ich sollte ein Makro haben, dass mir alle Zellen zu Zahlen macht und auch noch mit sehr großen Tabellen ein akzeptables Ergebnis bringt.
https://www.herber.de/bbs/user/85600.xls
Besten Dank für die Hilfe und Servus, Walter

Anzeige
AW: Code funktioniert
31.05.2013 19:45:37
Hajo_Zi
Hallo Walter,
markiere die werte in einer Spalte und dann Text in Spalten.

AW: Code funktioniert
31.05.2013 20:09:33
WalterK
Hallo Hajo,
guter Tipp, das funktioniert gut.
Der Makrorecorder hat dann folgendes aufgezeichnet:
Range("B5:B33").Select
Selection.TextToColumns Destination:=Range("B5"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("K5").Select

Das geht aber nur Spalte für Spalte.
Was muss ich aber schreiben, wenn die das von B5:Z(n) benötige?
Besten Dank für die Hilfe und Servus, Walter

Anzeige
AW: Code funktioniert
31.05.2013 20:44:40
Hajo_Zi
mache eine Schleife, auf das For verzichte ich jetzt mal
Range(cells(5,Loi),Cells(33,loi))..TextToColumns Destination:=Range("B5"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Gruß Hajo

Besten Dank, versuch ich jetzt. Servus, Walter
31.05.2013 21:01:14
WalterK

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige