Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1476to1480
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

Ausnahme in schleife

Ausnahme in schleife
01.03.2016 18:45:14
Thomas
hallo excelfreunde,
ich fülle mit dem untenstehenden Code ein listview per schleife.
Soweit so gut. nun habe ich aber das problem das ich in der spalte 2 und 3 ein uhrzeitformat habe welches ich auch gern so mit im listview haben würde.
Mein gedanke war dies mit
'###############################################################################################
Select Case lngSp ' dies geht so nicht
Case 2, 3
.ListItems(n).ListSubItems.Add , , Format(lngSp, "mm:hh")
End Select
'#################################################################################################
zu lösen. nun ja was soll ich noch sagen geht nicht ( bitte nicht über den versuch lachen ich kann es einfach nicht ) Ich erhalte die Meldung "Objekt nicht gefunden". Ich denke ich brauch nicht fragen was ich falsch mache ich denke das ist von anfang bis ende murks) Kann mir jemand mal zeigen wie ich in einer solchen schleife eine ausnahme oder besser eine spalte ein uhrzeitformat einlesen könnte?
besten dank vorab für das Interesse
liebe grüsse thomas
With Me.ListView2
.ListItems.Clear
'Alle Zeilen durchgehen (incl. Überschrift)
Set rng2 = Sheets("testdaten").Range("A1:m100")
For lngZe = 1 To rng2.Rows.Count
.ListItems.Add , "x" & lngZe, rng2.Cells(lngZe, 1)
'zweite Spalte bis letzte Spalte
For lngSp = 2 To rng2.Columns.Count
.ListItems(lngZe).SubItems(lngSp - 1) = rng2.Cells(lngZe, lngSp)
'###############################################################################################
Select Case lngSp ' dies geht so nicht
Case 2, 3
.ListItems(n).ListSubItems.Add , , Format(lngSp, "mm:hh")
End Select
'#################################################################################################
Next lngSp
Next lngZe
.ListItems.Remove (1) 'Überschriften (als Item) wieder entfernen.
End With
Me.Caption = Space(10) & Me.ListView2.ListItems.Count & " Zeilen"

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "mm:hh" ist kein gültiges ZahlenFormat! orT
01.03.2016 19:40:38
Thomas
Hallo Luc :-?,
hab erstmal besten Dank für dein Interesse und für deine Antwort.
Den ersten Fehler habe ich geändert die zeile geht jetzt so
Select Case lngSp ' dies geht so nicht
Case 2, 3
.ListItems(lngZe).ListSubItems.Add , , Format(lngZe, "hh:mm")
End Select
nun habe ich zwar keine Fehlermeldung mehr aber im listview stehen die Uhrzeiten immer noch nach dem Format 0,375 unsw.
weiss jemand was könnte noch falsch sein könnte?
liebe grüsse thomas

Anzeige
Ziemliches Durcheinander, ...
02.03.2016 00:33:43
Luc:-?
…Thomas;
warum nicht so:
Select Case lngSp
Case 2, 3: .ListItems(lngZe).SubItems(lngSp - 1) = Format(rng2.Cells(lngZe, lngSp), "hh:mm")
Case Else: .ListItems(lngZe).SubItems(lngSp - 1) = rng2.Cells(lngZe, lngSp)
End Select

Falls diese Zellen aber schon im Blatt als hh:mm formatiert sind, kann die fragliche Zeile auch so lauten: Case 2, 3: .ListItems(lngZe).SubItems(lngSp - 1) = rng2.Cells(lngZe, lngSp).Text
U.U. solltest du das ohnehin für alle Übernahmen so machen, dann benötigst du auch keine Ausnahme für Spalten2/3.
Gruß, Luc :-?

Anzeige
es passt luc
02.03.2016 05:41:53
Thomas
hallo Luc :-?,
ich freu mich riesig es klappt. du glaubst garnicht wie lange ich probiert habe.
hab vielen vielen dank.
ich würde es ja anders gern machen aber ich weises einfach nicht wie der Anfang sein muss.
wenn man das jede spalte einzeln macht wäre ich ich mit mein kleines bis gar kein wissen deutlich flexibler. dann könnte ich auch einzelne spalten die ich nicht benötige ausschließen ( diese schleppe ich sinnlos mit mir rum).
wärst du so nett und würdest mir den anfang mal zeigen?
liebe grüsse thomas
For lngSp = 1 To rng2.Columns.Count
On Error Resume Next
intBreite = rng.Cells(1, lngSp).Comment.Text
If intBreite = 0 Then intBreite = 10
On Error GoTo 0
.ColumnHeaders.Add , , rng2.Cells(1, lngSp), intBreite
Next lngSp
End With
With Me.ListView2
.ListItems.Clear
'Alle Zeilen durchgehen (incl. Überschrift)
Set rng2 = Sheets("profile").Range("A1:m100")
For lngZe = 1 To rng2.Rows.Count
.ListItems.Add , "x" & lngZe, rng2.Cells(lngZe, 1)
'zweite Spalte bis letzte Spalte
For lngSp = 2 To rng2.Columns.Count
.ListItems(lngZe).SubItems(lngSp - 1) = rng2.Cells(lngZe, lngSp)
'###############################################################################################
Select Case lngSp
Case 2, 3: .ListItems(lngZe).SubItems(lngSp - 1) = Format(rng2.Cells(lngZe, lngSp), "hh:mm")
Case Else: .ListItems(lngZe).SubItems(lngSp - 1) = rng2.Cells(lngZe, lngSp)
End Select
'#################################################################################################
Next lngSp
Next lngZe
.ListItems.Remove (1) 'Überschriften (als Item) wieder entfernen.
'ein Item auswählen
'If .ListItems.Count > 50 Then .ListItems(51).Selected = True
'.ListItems(51).EnsureVisible 'und Item ins Bild rücken
End With
Me.Caption = Space(10) & Me.ListView2.ListItems.Count & " Zeilen"
Set rng2 = Nothing
'lvwSetAllColWidth ListView2 ' spaltenbreite automatisch einstellen

Anzeige
ich glaube ich hab es
02.03.2016 14:53:20
thomas
Hallo Luc :-?,
ich habe es hinbekommen war gar nicht so schwer es geht mit
.ListItems(lngZe).SubItems(lngSp - 13) = rng2.Cells(lngZe, lngSp - 12).Text
.ListItems(lngZe).SubItems(lngSp - 12) = rng2.Cells(lngZe, lngSp - 11).Text
ich weiss zwar nicht warum ich mit - 13 anfangen muss aber es geht.
Und die sache wie ich eine spalte inclusive Überschrift ausschliesse. Aber ich denke die stellschraube finde ich noch irgentwie.
hab recht vielen dank für deine tipps und beispiellösung.
liebe grüsse thomas

Bitte sehr! Viel Erfolg! ;-) owT
02.03.2016 15:48:55
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige