Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1828to1832
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

Erste freie Zeile ≠ Erste freie Zeile

Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 12:29:10
timo
Hallo zusammen,
ich bin am verzweifeln und konnte auch in anderen Threads keine Hilfe finden. Denke die Lösung ist recht simpel.
Mein Makro soll die erste freie Zeile in Spalte B ausfindig machen

Dim erstefreiezeile As Integer
erstefreiezeile = Workbooks(pl).Sheets(p).Cells(Rows.Count, 2).End(xlUp).Row + 1
Leider funktioniert das nicht. Sobald ich händisch Daten aus den Zellen lösche erkennt Excel diese Zellen nicht als leer an.
Jemand eine Idee was ich falsch mache? Es hat sonst immer funktioniert...

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schuss ins blaue
06.05.2021 12:32:15
Klaus
Hallo Timo,
hast du vielleicht über 32.767 Datensätze? So oder so sollten Zeilen- und Spaltenzähler standardmäßig als "long" deklariert werden, nicht als Integer. Gibts auch grad ne aktuelle DIskussion drüber, die verlinke ich dir gern bei Interesse.
LG,
Klaus M.
(offen da nicht gelöst)
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 12:37:51
Daniel
Hi
Diese Vorgehensweise findet das Ende der Liste und gibt dann die nächste Zeile aus.
Löschst du mittdrin Zeilen, werden die so nicht gefunden, das müsste man anders programmieren (z.b. mit Sprung .End(xldown) von der ersten Zelle aus, allerdings gibt es hier ein paar Sonderfälle zu berücksichtigen)
Die nächste Frage wäre, wie löschst du denn die Zeile?
Mache benutzen zum leeren ja die Leertaste, welche aber nicht leert, sondern ein konkretes Zeichen übermittelt.
Gruß Daniel
Anzeige
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 12:52:34
Timo
Mein Datensatz ist (noch) nicht besonders groß. Ich lösche nicht mittendrin, sondern ausschließlich am Ende der Liste in Spalte B. Dabei drücke ich die Entf-Taste, um eine Löschung vorzunehmen. Meine Befürchtung ist, dass mein Code auch Formatierungen von Zellen als nicht leer erkennt. Das hatte ich jedoch zuvor noch nie erlebt...
Vielleicht noch wichtig anzumerken: Ich greife von einer anderen Arbeitsmappe auf die Tabelle zu.
Hier mein ganzer Code

Sub Schaltfläche5_Klicken()
'xxliste aus variablem Pfad öffnen
Modul3.xxliste_oeffnen
'Variablen deklarieren
Dim an As String
an = "xxformular.xlsm"
Dim a As String
a = "xxformular"
Dim p As String
p = "xxliste"
Dim pl As String
pl = "xxliste_Neu.xlsm"
Dim erstefreiezeile As Integer
erstefreiezeile = Workbooks(pl).Sheets(p).Cells(Rows.Count, 2).End(xlUp).Row + 1
Dim letztezeile As Integer
letztezeile = Workbooks(pl).Sheets(p).Cells(Rows.Count, 2).End(xlUp).Row
Dim zeile As Integer
Modul1.Makro_Backup
'Wenn Bezeichnung xxleiter/xxbesitzer gleich leer dann ";" setzen
If Workbooks(an).Sheets(a).Cells(6, 2).Value = "" Then
Workbooks(an).Sheets(a).Cells(6, 2).Value = ";"
End If
If Workbooks(an).Sheets(a).Cells(7, 2).Value = "" Then
Workbooks(an).Sheets(a).Cells(7, 2).Value = ";"
End If
'Übernahme neuer xxnummer
Workbooks(an).Sheets(a).Cells(6, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 2)
Workbooks(an).Sheets(a).Cells(7, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 3)
Workbooks(an).Sheets(a).Cells(8, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 4)
Workbooks(an).Sheets(a).Cells(9, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 5)
Workbooks(an).Sheets(a).Cells(11, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 6)
Workbooks(an).Sheets(a).Cells(12, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 7)
Workbooks(an).Sheets(a).Cells(24, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 8)
Workbooks(an).Sheets(a).Cells(25, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 9)
Workbooks(an).Sheets(a).Cells(26, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 10)
Workbooks(an).Sheets(a).Cells(23, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 11)
Workbooks(an).Sheets(a).Cells(24, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 12)
Workbooks(an).Sheets(a).Cells(25, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 13)
Workbooks(an).Sheets(a).Cells(26, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 14)
Workbooks(an).Sheets(a).Cells(28, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 17)
Workbooks(an).Sheets(a).Cells(29, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 18)
Workbooks(an).Sheets(a).Cells(30, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 19)
Workbooks(an).Sheets(a).Cells(28, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 20)
Workbooks(an).Sheets(a).Cells(29, 5).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 21)
Workbooks(an).Sheets(a).Cells(53, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 22)
Workbooks(an).Sheets(a).Cells(53, 4).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 23)
Workbooks(an).Sheets(a).Cells(54, 4).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 24)
Workbooks(an).Sheets(a).Cells(55, 4).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 25)
Workbooks(an).Sheets(a).Cells(55, 2).Copy Destination:=Workbooks(pl).Sheets(p).Cells(erstefreiezeile, 26)
MsgBox ("Die Informationen zur neuen xxnummer wurden erfolgreich in die xxliste übertragen."), vbInformation
Sheets("xxformular").Shapes.Range(Array("Button 5")).Visible = False
End Sub

Anzeige
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 13:24:16
Daniel
kann ich jetzt auch nicht nachvollziehen.
Code ist zwar umständlich, sieht aber erstmal korrekt aus.
Was in deinen Dateien jetzt vorliegt, können wir hier natürlich nicht beurteilen.
Da müsstest du uns die Dateien schon mal hochladen oder sich jemand das bei dir am Schreibtisch anschauen.
Das End(xlup) reagiert meines wissens nach nur auf inhalte, nicht auf formate.
nur ein Tipp noch: verwende für Zeilnnummern besser den Datentyp LONG.
Integer ist nur bis 2^15-1 definiert, Excel kann aber bis zu 2^20 Zeilen haben. bei Long reicht der Zahlenraum bis 2^31-1.
Da Integer keine anderen Vorteile hat, kann man einfach immer Long verwenden.
Gruß Daniel
Anzeige
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 13:36:34
Werner
Hallo,
kann es sein, dass wir hier von einer "intelligenten Tabelle" sprechen?

Dim erstefreiezeile As Long
With Workbooks(pl).Sheets(p)
erstefreiezeile = .Columns(2).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
searchdirection:=xlPrevious).Offset(1).Row
MsgBox erstefreiezeile
End With
Gruß Werner
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 14:07:17
Daniel
Intelligente Tabelle ist gut.
hatte ich nicht auf dem Schirm.
Da springt das End(xlup) nur bis zum Ende der gesamten Tabelle, auch wenn in der jeweiligen Spalte darüber noch Zellen frei sind.
weitere Ansatzmöglichkeiten, um das Problem zu lösen:
1). warum werden nur in Spalte B die Inhalte gelöscht?
Wenn man hier beim Löschen die ganze Zeile löscht, passt sich die Größe der Tabelle an.
Es macht auch keinen Sinn die Inhalte in den anderen Spalten stehen zu lassen, da sie ja sowieso überschrieben werden.
2. Statt Sprung von unten Sprung von oben. das funktioniert dann besser:

erstefreiezeile = Workbooks(pl).Sheets(p).Cells(1, 2).End(xlDown).Row + 1
achtung: Zeile 1 und 2 müssen gefüllt sein, sonst geht der Sprung ganz nach unten.
Gruß Daniel
Anzeige
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 15:04:50
Timo
Vermutlich ist da der Hase begraben... Ich habe anfangs eine Excel-Vorlage gewählt, da mir das Design gut gepasst hat und Änderungen markiert werden.
Kann man die auch wieder "blöd schalten"?
Vielen Dank euch....
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 15:15:56
Daniel
Rechte Maustaste - Tabelle - In Bereich konvertieren
Gruß Daniel
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 15:32:42
Timo
Oh Wow.
Glaube ich brauch erstmal VBA Pause. Tausend Dank euch
Ladys
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 13:57:22
GerdL
Moin Timo,
dir ist schon klar, dass du die "erstefreie Zeile" zuerst ermittelst u. hinterher ggf. in B6 und B7 Semikolone schreibst.
Macht "Modul1.Makro_Backup" in Spalte B des Tabellenblattes etwas?
Gruß Gerd
Anzeige
AW: Erste freie Zeile ≠ Erste freie Zeile
06.05.2021 14:22:21
Timo
Oh, danke!
"Modul1.Makro_Backup" verändert keine Daten.
man kann alle Beiträge lesen,....
06.05.2021 14:35:38
Werner
Hallo,
...müssen muss man natürlich nicht.
Gruß Werner

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige