Registriert seit: 17.05.2016
Version(en): 2016
Hallo Leute,
ich habe eine Excel Tabelle mit ca. 30 Arbeitsblättern. Nun möchte ich in allen Arbeitsblättern die gleichen Spalten löschen :19: .
Wenn ich die Arbeitsblätter gruppiere, kommt eine Fehlermeldung, das dies nicht möglich ist, wenn mehrere Arbeitsblätter markiert sind
.
Kennt jemand eine Möglichkeit mit der ich das löschen kann? Per Hand dauert das ewig, da ich jedes Arbeitsblatt auch noch in eine CSV Datei umwandle, damit ich diese später in eine Oracle Datenbank importieren kann.
Vielen Dank schonmal :D
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
wenn Du VBA benutzen darfst.
Code:
Sub prcSpaltenloeschen()
Dim wksBlatt As Worksheet
Dim arrTabellen As Variant
Dim lngC As Long
arrTabellen = Array(7, 5, 3)
For Each wksBlatt In ThisWorkbook.Worksheets
For lngC = 0 to UBound(ArrTabellen)
wksBlatt.Columns(arrTabellen(lngC)).Delete
Next lngC
Next wksBlatt
End Sub
Es wird hier die 7., 5. und 3. Spalte gelöscht.
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Jumper512
Registriert seit: 17.05.2016
Version(en): 2016
(17.05.2016, 12:27)Steffl schrieb: Hallo,
wenn Du VBA benutzen darfst.
Code:
Sub prcSpaltenloeschen()
Dim wksBlatt As Worksheet
Dim arrTabellen As Variant
Dim lngC As Long
arrTabellen = Array(7, 5, 3)
For Each wksBlatt In ThisWorkbook.Worksheets
For lngC = 0 to UBound(ArrTabellen)
wksBlatt.Columns(arrTabellen(lngC)).Delete
Next lngC
Next wksBlatt
End Sub
Es wird hier die 7., 5. und 3. Spalte gelöscht.
Vielen Dank hat geklappt :D
Andere Frage: Ich muss jetzt noch in der ersten Spalte alle Zeilen mit dem Namen des Arbeitsblattes füllen. Also sagen wir ein Arbeitsblatt hat 4000 Zeilen die gefüllt sind, dann soll in der ersten Spalte überall der Name auftauchen. Das soll dann später in der Datenbank als ID dienen. Bin leider nicht so fit in VBA
. SQL ist eher meine Abteilung :P
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
(17.05.2016, 17:05)Jumper512 schrieb: SQL ist eher meine Abteilung :P
Das passt aber rein gar nicht zu deinem Ansinnen, dass immer der (identische) Arbeitsblattname als ID verwendet werden soll!
Aber in 2016 hast du ja Power Query integriert, und damit kannst du auf SQL-Basis schick auffüllen.
Beste Grüße
Günther
Excel-ist-sexy.de …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:1 Nutzer sagt Danke an GMG-CC für diesen Beitrag 28
• Jumper512
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
das ist relativ easy, wenn in Spalte B auch alles gefüllt ist. Trage in A1 den Namen ein, markiere A1 gehe mit der Maus über die rechte untere Ecke von A1 und klicke doppelt auf die Ecke. Dann füllt Excel alles bis zum letzten Eintrag in B aus.
Ist nicht alles in B gefüllt, musst Du die Aktion ggf. mit dem letzten Eintrag in A wiederholen.
. \\\|/// 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Jumper512
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
Es gibt noch mehr (und bei mehreren Begriffen in einer Spalte) vielleicht elegantere Möglichkeiten. Schau mal bei
Excel-ist-sexy rein ...
.
Beste Grüße
Günther
Excel-ist-sexy.de …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:1 Nutzer sagt Danke an GMG-CC für diesen Beitrag 28
• Jumper512
Registriert seit: 17.05.2016
Version(en): 2016
(17.05.2016, 18:06)GMG-CC schrieb: (17.05.2016, 17:05)Jumper512 schrieb: SQL ist eher meine Abteilung :P
Das passt aber rein gar nicht zu deinem Ansinnen, dass immer der (identische) Arbeitsblattname als ID verwendet werden soll!
Aber in 2016 hast du ja Power Query integriert, und damit kannst du auf SQL-Basis schick auffüllen.
Am Ende kommen alle Arbeitsblätter in die gleiche Oracle Datenbank Tabelle. Die ID soll dann die Zugehörigkeit bestimmen. Diese Daten werde ich dann später in der Oracle Datenbank weiterverarbeiten.
Registriert seit: 17.05.2016
Version(en): 2016
(17.05.2016, 18:21)schauan schrieb: Hallöchen,
das ist relativ easy, wenn in Spalte B auch alles gefüllt ist. Trage in A1 den Namen ein, markiere A1 gehe mit der Maus über die rechte untere Ecke von A1 und klicke doppelt auf die Ecke. Dann füllt Excel alles bis zum letzten Eintrag in B aus.
Ist nicht alles in B gefüllt, musst Du die Aktion ggf. mit dem letzten Eintrag in A wiederholen.
Danke, aber ich wollte mehr eine automatische Lösung. Wenn ich doch wieder was ändere, müsst ich wieder 30 Arbeitsblätter manuell umändern ;D
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
nicht das Gelbe vom Ei :s
Code:
Sub prcSpaltenloeschen()
Dim wksBlatt As Worksheet
Dim arrTabellen As Variant
Dim lngC As Long, lngLetzteZeile As Long
arrTabellen = Array(7, 5, 3)
For Each wksBlatt In ThisWorkbook.Worksheets
For lngC = 0 To UBound(arrTabellen)
wksBlatt.Columns(arrTabellen(lngC)).Delete
Next lngC
lngLetzteZeile = wksBlatt.Cells(wksBlatt.Rows.Count, 2).End(xlUp).Row
wksBlatt.Cells(1, 1).Resize(lngLetzteZeile).Value = wksBlatt.Name
Next wksBlatt
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(17.05.2016, 19:06)Jumper512 schrieb: Danke, aber ich wollte mehr eine automatische Lösung. Wenn ich doch wieder was ändere, müsst ich wieder 30 Arbeitsblätter manuell umändern ;D
dann trage ein Mal in jedes Arbeitsblatt in jede Zelle der Spalte A folgende Formel ein:
=TEIL(ZELLE("filename";$A$1);FINDEN("]";ZELLE("filename";$A$1))+1;FINDEN("]";ZELLE("filename";$A$1))-FINDEN("[";ZELLE("filename";$A$1))-1)
Nun hast Du dort in jeder Zelle den Blatt-Namen als "ID" stehen und bei Änderung des Blattnamens ändert sich auch die "ID".
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• Jumper512