Collapse column

Autor Thema: Kopieren zwischen Worksheets in dynamischen Zeilen mit festen Spalten  (Gelesen 376 mal)

Offline HerrJe

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
Hallo  Forumsteilnehmer_innen,

ich komme leider mit meinen geringen und autodidaktisch angeeigneten VBA Kenntnissen nicht weiter.
Folgende Aufgabenstellung würde ich gerne umsetzen:
Mit Hilfe eines externen Programms werden Daten aus Steuergeräten ausgelesen. Diese werden dann manuell in ein leeres Worksheet kopiert. Durch einen Button wird ein Makro ausgeführt, dass aus diesem Worksheet bestimmte Daten in ein anderes Worksheet überträgt. Dort sollen Sie in die zugehörige Spalte und in die nächste freie Spalte eingefügt werden.

Folgenden VBA Code habe ich hierzu angefertigt:
 
Public Sub Steuergerät_Einlesen() 'Funktion zum einlesen der Daten
Dim rngQ_ECU As Range 'Quelle ECU Name
Dim rngZ_ECU As Range 'Ziel ECU Name
Dim rngQ_HWVer As Range 'Quelle HW Version
Dim rngZ_HWVer As Range 'Ziel HW Version
Dim rngQ_SWVer As Range 'Quelle SW Version
Dim rngZ_SWVer As Range 'Ziel SW Version

Set rngQ_ECU = Sheets("Tabelle1").Range("B4") 'ECU Name einlesen
Set rngZ_ECU = Sheets("Tabelle2").Cells(Sheets("Tabelle2").Rows.Count, 3).End(xlUp).Offset(1, 0)
rngZ_ECU.Resize(rngQ_ECU.Rows.Count, rngQ_ECU.Columns.Count).Value = rngQ_ECU.Value
 
Set rngQ_HWVer = Sheets("Tabelle1").Range("D8") 'HW Version einlesen
Set rngZ_HWVer = Sheets("Tabelle2").Cells(Sheets("Tabelle2").Rows.Count, 6).End(xlUp).Offset(1, 0)
rngZ_HWVer.Resize(rngQ_HWVer.Rows.Count, rngZ_HWVer.Columns.Count).Value = rngQ_HWVer.Value

Set rngQ_SWVer = Sheets("Tabelle1").Range("D10") 'SW Version einlesen
Set rngZ_SWVer = Sheets("Tabelle2").Cells(Sheets("Tabelle2").Rows.Count, 10).End(xlUp).Offset(1, 0)
rngZ_SWVer.Resize(rngQ_SWVer.Rows.Count, rngQ_SWVer.Columns.Count).Value = rngQ_SWVer.Value


Dieser funktioniert bereits ganz gut. Jedoch gibt es das Problem welches ich ohne Hilfe nicht lösen kann. Wenn nämlich aus dem Steuergerät nicht alle Daten ausgelesen werden und ich im nächsten Schritt ein Steuergerät einlese, bei dem alle Daten vorhanden sind, dann sollten diese immer in der gleichen Zeile stehen. Im Moment ist die Routine so programmiert, dass die nächste freie Zelle mit den kopierten Daten befüllt wird.

Folgende Beispieltabellen sollen dies verdeutlichen:

Ist-Zustand:

ECUSWHW
xyz123123
yxz123123
zzz

Soll-Zustand:
ECUSWHW
xyz123123
yxz
zzz123123

Nach meinem Verständnis müsste es eine Funktion/ Code geben, dass wenn eine neue Zeile angelegt wird, die Spalten dann auch gesperrt werden, dass sie nicht durch ein weiteres Einlesen gefüllt werden.

Vielen Dank im Voraus

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.