Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verständnisfrage
#1
Hallo zusammen,

ich hab mal wieder eine Frage.
Ich berechne in einer xlsm Datei (xl 2010) mit

Code:
           lz_test = wb1.Worksheets("test").Cells(Rows.Count, 1).End(xlUp).Row
               If lz_test = 1 Then
                   lz_test = 2
               Else
           lz_test = lz_test + 1
               End If
die letzte beschriebenZeile +1 zum einfügen von weitren Daten. Klappt auch super.
Nur wenn ich eine 2. Datei (im XL 97 Format - die Datei muss offen sein da aus dieser die Daten für den Import kommen) offen habe steigt der Code bei Zeilen über 65535  aus, genauer er gibt als Ergebnis 1 aus.
Wie kann ich das lösen?

LG Matty
Antworten Top
#2
Hallo,

ich vermute mal, das liegt daran, dass es in Excel 97 noch 65535 Zeilen gab, während es in Excel 2010 einige Zeilen mehr gab. Mit Rows.Count verweist du aber auf die gerade active Datei und nicht auf die Datei wb1 - du musst also den Verweis komplett setzen, z.B. mithilfe eines With-Rahmens.
Viele Grüße,
Matthias

-------------------------------------------------------------------------------------------

Man muß nicht alles wissen, man muß nur wissen, wie man die Lösung findet.
[-] Folgende(r) 1 Nutzer sagt Danke an Matthias84 für diesen Beitrag:
  • taschenlampe
Antworten Top
#3
Hallo,

hmmm ich dachte das ich das mit wb1.xxxxxxxx anspreche? wb1 ist dabei natürlich die "neue" xl2010 Datei.
Wie muss denn so ein with-Rahmen aussehen?

LG Matty
Antworten Top
#4
Hallöchen,

z.B. so
… wb1.Worksheets("test").Cells(wb1.Worksheets("test").Rows.Count, 1).End(xlUp).Row

oder so

With wb1.Worksheets("test")
… .Cells(.Rows.Count, 1).End(xlUp).Row
End With

Beachte die Punkte vor den zugehörigen Bereichsangaben.

Du musst aber beachten, dass Du dir die Umklammerungen nicht zerwürfelst, also z.B.
With
If
End With
End If

wäre falsch, korrekt wäre

With
If
End If
End With
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • taschenlampe
Antworten Top
#5
Danke euch beiden, klappt Super
Antworten Top
#6
Hallo Matty,

wofür die If-Verzweigung? Ist 1+1 nicht 2?
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#7
die letzte Zeile:


Code:
msgbox wb1.sheets("test").Cells(Rows.Count, 1).End(xlUp).address

und

Code:
msgbox wb2.sheets("test").Cells(Rows.Count, 1).End(xlUp).address

Was Mathias behauptet hat stimmt nicht: rows.count ist fix für jede Excelversion und nicht relatiert zu einem Arbeitsblatt.
Ergo .rows.count ist unsinn.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Du irrst, snb!
Modul Modul2
Option Explicit 
 
Sub RPP() 
Dim WB1 As Workbook, WB2 As Workbook 
Set WB1 = Workbooks("Schachbrett.xls") 
Set WB2 = Workbooks("Zeichentabelle.xlsm") 
WB2.Activate 
With WB1.Worksheets("Tabelle1") 
  Debug.Print Rows.Count 
  Debug.Print .Rows.Count 
End With 
End Sub 

ergibt im Direktfenster
Code:
1048576
65536

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Hallöchen,

ich schließe mich Ralf an. Je nach gerade aktivem Datenblatt xls oder xlsx wird mir in 2016 die Zeilenzahl der Datei angezeigt und nicht nur die in 2016 mögliche maximale Anzahl.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste