| | | Xometry Europe erweitert das Angebot um Vakuumguss und Formpressen, eine Pressemitteilung
|
Autor
|
Thema: VBA letzten Zeile in mehreren Tabellen (1257 / mal gelesen)
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Feb. 2021 08:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, in einer VBA-Programmierung aktiviere ich eine Tabelle und suche dann die letzte Zeile, dann gehe ich in eine andere Tabelle und suche da die letzte Zeile. Kann man Sheets(???).Activate verschachteln? Code:
Sub Tabellen_Data_Clear() Dim i As Integer Dim TabName1 As String Dim TabName2 As StringTabName1 = "Tab_ZtErf_Uebrsicht" TabName2 = "Tab_PA_PF" Sheets(TabName1).Activate '** Ermittlung der letzten Zeile in Spalte A lz = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Rows.Row '** Durchlauf aller Zeilen For t = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2 'Abfragen, ob in der ersten Spalte die Zelle nicht leer ist If ActiveSheet.Cells(t, 1).Value <> "" Then ActiveSheet.Rows(t).Delete Shift:=xlUp End If Next Sheets(TabName2).Activate '** Ermittlung der letzten Zeile in Spalte A lz = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Rows.Row '** Durchlauf aller Zeilen For t = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2 'Abfragen, ob in der ersten Spalte die Zelle nicht leer ist If ActiveSheet.Cells(t, 1).Value <> "" Then ActiveSheet.Rows(t).Delete Shift:=xlUp End If Next Worksheets(1).Activate 'Zu Tabelleblatt 1 gehen MsgBox "Tabellen '" & TabName1 & "' und '" & TabName2 & "' sind leer.", vbInformation End Sub
------------------ Gruß AndreasBo Ich nutze alte Boardsuche | Google | Netiquette ******** PTC Creo ******** IntelCore i7-9750H CPU | Windows 10 Pro 64 BIT | 32GB RAM | Nvidia Quadro T2000 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 19. Feb. 2021 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Hallo Andreas, teste mal: Code: Option ExplicitPublic Sub Tabellen_Data_Clear() Dim i As Long, lz As Long Dim TabName1 As String Dim TabName2 As String Dim vntItem As Variant TabName1 = "Tab_ZtErf_Uebrsicht" TabName2 = "Tab_PA_PF" For Each vntItem In Array(TabName1, TabName2) With Worksheets(vntItem) '** Ermittlung der letzten Zeile in Spalte A lz = .Cells(.Rows.Count, 1).End(xlUp).Row '** Durchlauf aller Zeilen For i = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2 'Abfragen, ob in der ersten Spalte die Zelle nicht leer ist If Not IsEmpty(.Cells(i, 1).Value) Then .Rows(i).Delete Shift:=xlUp Next End With Next Worksheets(1).Activate 'Zu Tabelleblatt 1 gehen MsgBox "Tabellen '" & TabName1 & "' und '" & TabName2 & "' sind leer.", vbInformation End Sub
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3434 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 19. Feb. 2021 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Feb. 2021 12:21 <-- editieren / zitieren --> Unities abgeben:
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3434 Registriert: 07.06.2001
|
erstellt am: 18. Mrz. 2021 07:27 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
läuft alle Tabellen durch und gibt die letzte Zeile und letzte Spalte aus. Code: Sub letzteZeileSpalteWB() Dim ws As Worksheet Dim letztezeileTB, letztespalteTB, letztezeileWB, letztespalteWB For Each ws In ActiveWorkbook.Worksheets letztezeileTB = ws.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row letztespalteTB = ws.Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column letztezeileWB = Application.Max(letztezeileTB, letztezeileWB) letztespalteWB = Application.Max(letztespalteTB, letztespalteWB) Next MsgBox letztezeileWB & "/" & letztespalteWB End Sub
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|