Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

Datenbankeintrag in der Zeile fehlerhaft

Datenbankeintrag in der Zeile fehlerhaft
12.06.2014 09:22:37
Sinayli57
Hallo,
habe folgendes Problem:
Aus einer Datei werden n-viele vertikale Spalten horizontal in eine Datenbank eingetragen. Dabei wird in die nächst leere Zeile ab der Spalte B eingefügt.
Das Problem ist, dass der Code die Formeln für die Durchnummerierung in der Spalte A der Datenbank als nicht leere Zeile sieht und in die erste Zeile hineinkopiert, wo in der entsprechenden Zelle in A keine Formel mehr hinterlegt ist.
Es soll also in der Spalte B nach der nächst leeren Zeile suchen, nicht in Spalte A.
Sub Datenbankeintrag()
Dim StartZeileQ As Long, EndZeileQ As Long, AnzZeilenZ As Long, StartSpalteQ As Long, _
EndSpalteQ As Long
Dim AktSpalteQ As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Workbooks.Open Filename:="V:\VI\SSC_Europa\Allgemein\Preiskalkulationstool\ _
Kalkulationsdatenbank.xlsx"
Set wsQuelle = ThisWorkbook.Worksheets("Elo") 'da muss der richtige Name der Quelldatei rein.... _
Set wsZiel = Workbooks("Kalkulationsdatenbank.xlsx").Worksheets("Datenbank")
StartZeileQ = 100
EndZeileQ = 145
StartSpalteQ = 2
EndSpalteQ = 28
AnzZeilenZ = wsZiel.Range("A1").CurrentRegion.Rows.Count + 1
For AktSpalteQ = StartSpalteQ To EndSpalteQ
If wsQuelle.Cells(StartZeileQ, AktSpalteQ)  "" Then
'wenn ungleich "" leer erste Zeile der akt Spalte, dann kopieren, transformieren
With wsQuelle
.Range(.Cells(StartZeileQ, AktSpalteQ), .Cells(EndZeileQ, AktSpalteQ)).Copy
wsZiel.Cells(AnzZeilenZ, 2).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:= _
False, Transpose:=True
AnzZeilenZ = AnzZeilenZ + 1
End With
End If
Next AktSpalteQ
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbankeintrag in der Zeile fehlerhaft
12.06.2014 13:45:40
fcs
Hallo Sinayli,
versuche die nächste frei Zeile in Spalte B wie folgt zu berechnen.
With wsZiel
AnzZeilenZ = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
Gruß
Franz

AW: Datenbankeintrag in der Zeile fehlerhaft
12.06.2014 14:13:39
Sinayli57
Hallo Franz,
funktioniert. Super, vielen Dank.
Hab nur ein kleines neues Problem.
Die Datenbank hab ich gerade schreibgeschützt gemacht, damit keiner sein Unwesen in der Datenbank treiben kann, doch gibt das Makro jetzt einen Fehler an:
Laufzeitfehler 1004 (...ist schreibgeschütz)
Was muss ich in den Quelltext einfügen, damit es selbst denn Blattschutz aufhebt, einfügt, wieder schützt und wo genau im Code? Danke

Anzeige
AW: Datenbankeintrag in der Zeile fehlerhaft
12.06.2014 15:21:57
fcs
Hallo Sinayli,
vor der For-Schleife Schutz aufheben, nach Next bzw. vor dem Speichern wieder einschalten.
Fall du besondere Optionen einstellen willst, dann mit dem Rekorder aufzeichnen und Zeile mit Protect anpassen.
Gruß
Franz
wsZiel.Unprotect Password:=""
For AktSpalteQ = StartSpalteQ To EndSpalteQ
If wsQuelle.Cells(StartZeileQ, AktSpalteQ)  "" Then
'wenn ungleich "" leer erste Zeile der akt Spalte, dann kopieren, transformieren
With wsQuelle
.Range(.Cells(StartZeileQ, AktSpalteQ), .Cells(EndZeileQ, AktSpalteQ)).Copy
wsZiel.Cells(AnzZeilenZ, 2).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:= _
False, Transpose:=True
AnzZeilenZ = AnzZeilenZ + 1
End With
End If
Next AktSpalteQ
wsZiel.Protect Password:=""

Anzeige
AW: Datenbankeintrag in der Zeile fehlerhaft
12.06.2014 16:00:03
Sinayli57
Vielen Dank.
Alles perfekt!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige