Exel spalten löschen und leere Spalten mit 0 füllen
Exel spalten löschen und leere Spalten mit 0 füllen
Hallo zusammen,
könnt ihr mir vielleicht helfen?
Ich möchte mit Access eine täglich aktualisierte Exel Tabelle importieren. Bei der Exel Tabelle müssen aber voher einige Spalten gelöscht werden. Die restliche Spalten enthalten leere Zellen die mit 0 gefüllt werden müssen.
Würde mich reisig freuen, wenn ihr mir da weiter helfen könntet!
Greetings
Sandra
Antwort schreiben
Antwort 1 von Beverly vom 15.06.2019, 20:18 Options
Hi Sandra,
ich weiß leider nicht, welche Spalten du löschen möchtest, also habe ich mal einfach Spalten A:C und Spalte E angenommen
Sub sandra()
Dim loZeile As Long
Dim inSpalte As Integer
With Sheets("Tabelle1")
.Range("A:C", "E:E").Delete
For inSpalte = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Column
For loZeile = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Row
If .Cells(loZeile, inSpalte) = "" Then .Cells(loZeile, inSpalte) = 0
Next loZeile
Next inSpalte
End With
End Sub
Bis später,
Karin
Antwort 2 von Sandrak vom 15.06.2019, 20:38 Options
Hallo Karin,
danke erstmal für dein schnelles Antwort :-)
Ich habe den Code auf einer Test Tabelle ausprobiert und es hat wunderbar geklappt.
Eine Frage noch gibt es den eine möglichkeit die Tabelle danach sofort nach access zu importieren???
MfG
Sandra K
Antwort 3 von Beverly vom 15.06.2019, 22:49 Options
Hi Sandra,
mit dem Export aus Excel nach Access habe ich mich noch nicht beschäftigt. Aber soweit ich weiß, ist es günstiger, den Datenimport aus Access heraus via Code zu steuern. Vielleicht hilft dir dabei ja die Forumssuche weiter.
Bi später,
Karin
Antwort 4 von Sandrak vom 16.06.2019, 13:37 Options
Hallo Karin,
ich wollte heute mehrer Spalte löschen, und zwar (A,C-J,N-P,S,U,W,Z-AB,AD-AF),dazu habe ich in die Zeile
.Range("A:A", "C:J", "N:P", "S:S", "U:U", "W:W", "Z:AB", "AD:AF").Delete
eingegeben.
Er gibt mir aber eine Fehler Meldung aus.
Laufzeitfehler 1004 Anwendungs oder Objektdefinierter Fehler
Antwort 5 von Sandrak vom 16.06.2019, 13:45 Options
Wenn ich das Programm von exel aus starte erschient "Falsche Anzahl an Argumenten oder Ungültige Zuweisung zu einer Eigenschaft"
Antwort 6 von rainberg vom 16.06.2019, 14:37 Options
Hallo Sandra,
so sollte es gehen
.Range("A:A,C:J,N:P,S:S,U:U,W:W,Z:AB,AD:AF").Delete
Gruß
Rainer
Antwort 7 von Sandrak vom 16.06.2019, 16:22 Options
Hallo Rainer,
ich habe dieses befehl auf einer kleineren Tabellen benutz und es hat wunderbar geklappt.
Lieder funktioniert das nicht auf einer Tabelle mit ca.7000 Zeilen.
Hast du da vielleicht eine Idee??
lg
Sandra K
Antwort 8 von rainberg vom 16.06.2019, 16:55 Options
Hallo Sandra,
an der Zeilenmenge dürfte das nicht liegen.
Muss ein Fehler im Code sein, den ich leider Mangels zugehöriger Tabelle nicht testen kann.
Mein Vorschlag ist nur als Einzelbefehl, ohne With-Anweisung, getestet.
Nur noch ein Hinweis: für eine Helfer sind immer konkrete Infos wichtig, "funktioniert nicht" reicht da nicht aus.
Gruß
Rainer
Antwort 9 von Beverly vom 16.06.2019, 20:15 Options
Hi Sandra,
an der Zeilenanzahl liegt es auf keinen Fall, da ja die Spalten insgesamt gelöscht werden. Reiner's Code funktioniert auch bei mir problemlos - auch mit 40.000 gefüllten Zeilen und auch in einer With-Anweisung.
Bis später,
Karin