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

VBA - Daten transportieren

VBA - Daten transportieren
14.09.2016 16:18:24
Berndt
Hallo Freunde,
hier zunächst mal die Bsp. Datei:
https://www.herber.de/bbs/user/108179.xlsm
Die Frage lautet:
-transportiere mir alle Themen mit den dazugehörigen Datum in die einzelnen Mitarbeiterlisten welche ein x (steht für zugeordnet) als Vermerk besitzt.
-trage diese wie gesagt in die entspr. MitarbeiterListen ein (Achtung! Der Bereich zum einfügen ist immer in in unterschiedlichen Zeilen) (damit möchte ich zeigen, damit der Bereich zum einfügen dynamisch ist)
-Wenn die Daten in den Mitarbeiterlisten stehen, dann bündel mir diese im Reiter "Dashboard" an entsprechender Stelle (Achtung! wieder dynamischer Bereich; kann höher oder tiefer stehen)
Ist dies überhaupt umsetzbar?
PS: in der Bsp. Datei habe ich gezeigt wie es aussehen sollte.
VG Berndt

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Daten transportieren
17.09.2016 15:33:22
Michael
Hallo Berndt,
weil Du so freundlich schreibst: machbar ist so gut wie alles, fragt sich nur, mit welchem Aufwand...
Das Forum ist nicht dazu da, Programmieraufträge nach Kundenwünschen zu auszuführen, sondern Fragen zu beantworten.
Ich habe mal den ersten Punkt programmiert: das Übertragen in die einzelnen Blätter.
Ich habe die Reihenfolge der Spalten geändert und eine weitere eingeführt, in die ein "ja" geschrieben wird, sobald die Übertragung vorgenommen wurde: DIESE Spalte kannst Du dann verwenden, um Zeilen im "Themenspeicher" zu löschen (d.h. Du mußt Dein Makro entsprechend selbst ändern).
Vielleicht hilft Dir die Vorgehensweise ja schon, um die weiteren Sachen geregelt zu bekommen.
Die Datei:

Die Datei https://www.herber.de/bbs/user/108228.xlsm wurde aus Datenschutzgründen gelöscht


Schöne Grüße,
Michael
Anzeige
AW: VBA - Daten transportieren
19.09.2016 14:37:25
Berndt
Hallo Michael,
vielen Dank für deine Mühe.
Ich werde versuchen in zukunft aus meinem spezifischen Problem eine brauchbare Lösung für jedermann zu machen.
Also ich habe deinen Ansatz mal bearbeitet und etwas umgeschrieben.
Private Sub CommandButton3_Click()
Dim i&, k&, a ', b  ' i und z braucht man immer, a+b sind "Arrays"
Dim bis&          ' & = as long
Const von = 6      ' erste Zeile mit Daten
bis = Range("B" & Rows.Count).End(xlUp).Row + 1
a = Range("B" & von & ":E" & bis)
For i = 1 To UBound(a)
If a(i, 2) = "x" Then
bis = Sheets(a(i, 3)).Range("B2000").End(xlUp).Row + 1 ' 2000 reicht hier ja...
Sheets(a(i, 3)).Range("B" & bis) = a(i, 1)
Sheets(a(i, 3)).Range("C" & bis) = a(i, 4)
End If
Next
End Sub
Dieser Code prüft die Spalte nach einen x und fügt die Themen inkl. Termine in die Mitarbeiterblätter ein.
Wie allerdings müsste der Code abgeändert werden, damit dieser in den Mitarbeiterblättern das Format mit übernimmt?
https://www.herber.de/bbs/user/108259.xlsm
VG Berndt
Anzeige
AW: VBA - Daten transportieren
19.09.2016 15:52:06
Michael
Hallo Berndt,
teste mal das hier:
Private Sub CommandButton3_Click()
Dim i&, k&, a
Dim bis&          ' & = as long
Const von = 6      ' erste Zeile mit Daten
bis = Range("B" & Rows.Count).End(xlUp).Row + 1
a = Range("B" & von & ":E" & bis)
For i = 1 To UBound(a)
If a(i, 2) = "x" Then
bis = Sheets(a(i, 3)).Range("B2000").End(xlUp).Row + 1 ' 2000 reicht hier ja...
Sheets(a(i, 3)).Range("B" & bis) = a(i, 1)
Sheets(a(i, 3)).Range("C" & bis) = a(i, 4)
Sheets(a(i, 3)).Range("B9:C9").Copy  ' da ist das gleiche Format
Sheets(a(i, 3)).Range("B" & bis).Resize(, 2).PasteSpecial xlFormats
End If
Next
End Sub
Die zwei neuen Zeilen vor dem End If kopieren das Format aus Zeile 9 des Zielblatts (das ist ja "fix" und genauso formatiert) in die Zeile, in die eben die Daten geschrieben wurden.
Schöne Grüße,
Michael
Anzeige
AW: VBA - Daten transportieren
19.09.2016 16:03:33
Berndt
Vielen Dank. scheint zu funktionieren.
na, hoffen wir es... Gruß zurück, M. owT
19.09.2016 16:36:14
Michael
AW: VBA - Daten zusammenführen
20.09.2016 10:00:52
Berndt
Also vielen Dank nochmal. Es funktioniert super.
Allerdings stellt sich für mich immer noch die Frage, wie die Daten wieder zusammenzuführen sind in das Template Dashboard.
Mein (nicht funktionierender) erster Vorschlag:
Private Sub CommandButton3_Click()
Dim i&, k&, a     ' i und z braucht man immer, a+b sind "Arrays"
Dim bis&          ' & = as long
Const von = 6     ' erste Zeile mit Daten
Application.ScreenUpdating = False
bis = Range("B" & Rows.Count).End(xlUp).Row + 1
a = Range("B" & von & ":E" & bis)
For i = 1 To UBound(a)
If a(i, 2) = "x" Then
bis = Sheets(a(i, 3)).Range("B2000").End(xlUp).Row + 1 ' 2000 reicht hier ja...
If IsError(Application.Match(a(i, 1), Worksheets(a(i, 3)).Range("B1:B" & bis), 0)) Then
Sheets(a(i, 3)).Range("B" & bis) = a(i, 1)
Sheets(a(i, 3)).Range("C" & bis) = a(i, 4)
Sheets(a(i, 3)).Range("B8:C8").Copy  ' da ist das gleiche Format
Sheets(a(i, 3)).Range("B" & bis).Resize(, 2).PasteSpecial xlFormats
End If
End If
Next
  For i = 1 To UBound(a)
If a(i, 2) = "x" Then
bis = Sheets(a("Dashboard")).Range("B2000").End(xlUp).Row + 1
If IsError(Application.Match(a(i, 1), Worksheets(a("Dashboard")).Range("B1:B" & bis), 0) _
)   Then
Sheets(a("Dashboard")).Range("B" & bis) = a(i, 1)
Sheets(a("Dashboard")).Range("E" & bis) = a(i, 4)
Sheets(a("Dashboard")).Range("F" & bis) = a(i, 3)
End If
End If
Next
Application.ScreenUpdating = True
End Sub
VG Berndt
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige