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

An grundlegenden Sachen scheitern...

An grundlegenden Sachen scheitern...
14.03.2018 09:13:35
Burak
... macht echt keinen Spaß -.-
In diesem Sinne guten Morgen und Hilfe!
Es geht ums Zeilen zählen bis zur ersten freien Zeile.
Ich habe im Tabellenblatt "Rohdaten" in den Spalten A-L Werte bzw Spalte 1 Überschriften.
Jetzt wollte ich mit Cells(Rows.Count...) ermitteln wieviele Zellen befüllt sind.
Aber egal was ich mache, ich kriege immer den Wert 1 zurückgegeben von diesem Befehl.
Der Code:
Loletzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
MsgBox (Loletzte)
Der Gesamtcode:
Sub dataimport()
'Deklaration der Variablen
Dim ws As Worksheet, importdatei, Loletzte As Long, i As Long, k As Long
'Pfadermittlung für den Import
importdatei = Application.GetOpenFilename
'Abbruchfunktion
If importdatei = "Falsch" Then Exit Sub
'Makrobremsen lösen
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = False
End With
With Worksheets("Rohdaten")
If .AutoFilterMode Then .Rows("1:1").AutoFilter
.Cells.Clear
End With
Set ws = ActiveWorkbook.Sheets("Rohdaten")
'Dateipfad und Ziel für Import
With ws.QueryTables.Add(Connection:="TEXT;" & importdatei, Destination:=ws.Range("A2"))
'Import als Textformatierung
.TextFileParseType = xlDelimited
'Spaltentrennung in Quelldatei per Komma
.TextFileSemicolonDelimiter = True
'Aktualisieren der externen Datenverbindung
.Refresh
End With
With Worksheets("Rohdaten")
.Range("A1").Resize(, 12) = Array("x", "y", "Zeitstempel", "Barcode", "Bauteil", "LIBName", " _
Analysetyp", "w", "Fenster", "PIN", "Feat", "Wert")
 Loletzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
MsgBox (Loletzte)
'Zielbereich festlegen
For k = 2 To Loletzte
'Datum rausfiltern
.Range("M" & k) = Left(.Range("C" & k), 8)
'Uhrzeit rausfiltern
.Range("N" & k) = Right(.Range("C" & k), 6)
Next k
'Spaltenbreiten
.Columns("A:N").EntireColumn.AutoFit
'Einzelne Formatierungen
.Columns("M:N").NumberFormat = "General"
'Überschriftenformatierung
.Rows(1).NumberFormat = "General"
.Range("A1:N1").Font.Bold = True
'Filter aktivieren
If .AutoFilterMode Then
If .FilterMode Then .ShowAllData
Else
.Rows(1).AutoFilter
End If
End With
MsgBox ("Der Import der Daten ist abgeschlossen.")
End Sub
Hoffe ihr habt eine Idee!
Freundliche Grüße

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: An grundlegenden Sachen scheitern...
14.03.2018 09:39:22
Rainer
Hallo Burak,
Ich schau immer hier nach:
https://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba
Alternativ mache ich manchmal auch sowas:

LetzteZeile = 1
While Cells(i, 1)  ""        'Hier die Spaltennummer eintragen
LetzteZeile = LetzteZeile + 1
Wend
Gruß,
Rainer
AW: An grundlegenden Sachen scheitern...
14.03.2018 09:40:03
Rainer
Tippfehler:
LetzteZeile = 1
While Cells(LetzteZeile , 1)  ""        'Hier die Spaltennummer eintragen
LetzteZeile = LetzteZeile + 1
Wend

Spezialfall
14.03.2018 09:42:15
lupo1
A1 muss gefüllt sein, sonst Antwort: Anzahl Zeilen 0.
A1 gefüllt: Wird mit END-UNTEN aus der ersten Zelle heraus bewegt, ist, falls A2 gefüllt, die Zielzellenzeile gleichzeitig die Anzahl der gefüllten Zellen, sonst 1.
Anzeige
AW: Spezialfall
14.03.2018 09:58:53
Burak
A1 ist gefüllt, A2 ist gefüllt, B1 ist gefüllt. usw. Mehr als genug ist da gefüllt.
An

.Range("A1").Resize(, 12) = Array("x", "y", "Zeitstempel", "Barcode", "Bauteil", "LIBName", " _
Analysetyp", "w", "Fenster", "PIN", "Feat", "Wert")
sieht man ja dass es gefüllt ist.
Aber trotzdem kriege ich keine 1.048.576, sondern nur ne 1 :(
Wirklich Spezialfall!
14.03.2018 10:01:35
Burak
Ich hab den Fehler!
Da die GESAMTE Spalte A befüllt ist, findet er keine leere Zeile. Also bis Zeile 1.048.576 ist alles befüllt, danach gibt es keine Zeile mehr, daher springt er aus unerfindlichen Gründen wieder auf 1. :O
Danke an alle!
Anzeige
dann fang ihn ab
14.03.2018 10:08:18
Rudi

if cells(rows.count,1)"" then
loletzte=rows.count
else
loletzte=cells(rows.count,1).end(xlup).row
end if

Das ist auch uns vermutlich neu ...
14.03.2018 10:35:41
lupo1
... ich hätte jetzt vermutet, dass er bei Voll-Füllung der Spalte auf der letzten Zelle 1048576 landet.
Ärgerlich, dass es nicht so ist!
AW: An grundlegenden Sachen scheitern...
14.03.2018 09:42:52
Rudi
Hallo,
lass mal den . weg.
 Loletzte = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Warum With Worksheets("Rohdaten") und nicht With ws? Achte ein wenig auf Konsistenz.
Gruß
Rudi
AW: An grundlegenden Sachen scheitern...
14.03.2018 09:56:31
Burak
Ah danke auf den Hinweis auf ws.
Aber das mit dem Punkt weglassen löst das Problem leider nicht. :(
Anzeige
AW: An grundlegenden Sachen scheitern...
14.03.2018 10:05:54
Rudi
Hallo,
keine Ahnung, wo der Wurm steckt. Wenn loLetzte=1 ist, muss ja
.Cells(Rows.Count, 1).End(xlUp).Row
= 0 sein, was nicht geht, da das immer mindestens 1 ergibt. (Es sei denn, es tritt ein Fehler auf, der mit On Error Resume Next ignoriert wird)
Gruß
Rudi
AW: An grundlegenden Sachen scheitern...
14.03.2018 14:27:10
Werner
Hallo Burak,
meinst du so was?
Public Sub bbb()
Dim loLetzte As Long
With Worksheets("Tabelle1")
If WorksheetFunction.CountBlank(.Columns(1)) = 0 Then
MsgBox "In Spalte A gibt es keine freien Zellen."
Exit Sub
Else
loLetzte = .Columns(1).SpecialCells(xlCellTypeBlanks).Row
End If
End With
MsgBox loLetzte
End Sub
Gruß Werner
Anzeige
AW: An grundlegenden Sachen scheitern...
16.03.2018 11:21:29
Burak
Ah jetzt habe ich gefunden! Nachdem ich darauf kam, dass es daran lag, dass es keine freien Zellen gibt, habe ich da problemlos eingebaut, dass wenn er keien findet, er als Wert für die VVariable loLetzte einfach 1048765 oder welches auch immer die letzte is, nehmen soll.
Daher war das für mich abgeschlossen und hab nicht mehr groß in den Topic geguckt.
Aber ja, grundsätzlich is das genau das was ich hatte.
Gerne u. Danke für die Rückmeldung. o.w.T.
16.03.2018 11:26:21
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige