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

Fehlermeldung (Erich aus Kamp-Linfort)

Fehlermeldung (Erich aus Kamp-Linfort)
Kurt
Guten Morgen zusammen,
Erich hatte mir freundlicherweise damit Unterstützt läuft auch.
Nur wenn der 1. Datensatz kopiert wurde kommt eine Fehlermeldung.
https://www.herber.de/bbs/user/73198.xls
mfg kurt p

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Korrektur/Ergänzung
23.01.2011 12:27:38
Erich
Hi Kurt,
ein Problem tritt auf, wenn in Spalte E die letzte gefüllte Zelle E3 oder E4 ist.
Wenn nur E3 gefüllt ist, ist gar nichts zu tun.
Wenn nur E3:E4 gefüllt sind, ist nur in A4 eine 1 zu schreiben (also kein Array - das macht den Fehler).
Hier eine ergänzte Variante, die diese Fälle abfängt:

Sub NummernAzuE()
Dim arrA, arrE(), lngE As Long, lngN As Long, zz As Long
lngE = Cells(Rows.Count, 5).End(xlUp).Row - 3
Select Case lngE
Case 0
Case 1
Cells(4, 1) = 1
Case Else
If lngE > 0 Then
arrA = Cells(4, 5).Resize(lngE)
ReDim arrE(1 To lngE)
For zz = 1 To UBound(arrA)
If Application.IsNumber(arrA(zz, 1)) Then
lngN = lngN + 1
arrE(zz) = lngN
End If
Next zz
Cells(4, 1).Resize(lngE) = Application.Transpose(arrE)
End If
End Select
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort und: Schönen Sonntag noch!
Anzeige
Korrektur der Korrektur
23.01.2011 12:32:06
Erich
Hi Kurt,
im Fall "Case = 1" soll nur ja dann die 1 in A4 geschrieben werden, wenn E4 nummerisch ist.
Das hatte ich übersehen. also noch mal:

Sub NummernAzuE()
Dim arrA, arrE(), lngE As Long, lngN As Long, zz As Long
lngE = Cells(Rows.Count, 5).End(xlUp).Row - 3
Select Case lngE
Case 0
Case 1
If Application.IsNumber(Cells(4, 5)) Then Cells(4, 1) = 1
Case Else
If lngE > 0 Then
arrA = Cells(4, 5).Resize(lngE)
ReDim arrE(1 To lngE)
For zz = 1 To UBound(arrA)
If Application.IsNumber(arrA(zz, 1)) Then
lngN = lngN + 1
arrE(zz) = lngN
End If
Next zz
Cells(4, 1).Resize(lngE) = Application.Transpose(arrE)
End If
End Select
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Einwandfrei --))
23.01.2011 13:12:55
Kurt
Hallo Erich,
danke für die Ergänzung.
Ein schönes Wochenende noch...
mfg Kurt P

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige