Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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
Spaltenabfrage und Kopieren auf neues Blatt
28.10.2019 20:29:31
Johannes
Guten Abend liebes Forum,
ich bin noch ziemlich unerfahren was VBA angeht und hab mir dafür glaub ich ziemlich viel vorgenommen. Da ich aber absolut nicht weis wo ich anfangen soll und auch nichts an Code dazu habe, frag ich nun Euch und bitte um Eure Unterstützung.
Es geht um folgendes: Ich habe eine Datenbank, in der unregelmäßig zu einigen Namen werte mit Datum gespeichert werden. Der VBA Code soll nun (am besten via Input-Box) zu dem gewünschten Namen die entsprechenden Werte mit dem jeweiligen Datum auf ein neues Blatt kopieren, und zwar wenn möglich nicht nebeneinander, sondern untereinander (heißt: Datum und Name, dann neue Zeile und da wieder Datunm und Name, usw. bis alle entsprechenden Werte auf dem Sheet sind) damit ich dann die Differenz zum Vormonat/Zeitraum ausrechnen und die Ergebnisse schön in eine Grafik packen kann. All das sollte per Mausklick und Input-Box klappen. Da aber im Laufe der Zeit neue Personen und ihre Werte hinzukommen, sollte bzw. muss jede Namensspalte jeweils getestet werden, bevor Datum und Name kopiert werden.
Also schon einiges, was der Code machen muss.
Ich hoffe, dass Ihr mir hier weiterhelfen könnt.
Hier sind noch die Bsp. zum Ausgangssheet:
Userbild
https://www.herber.de/bbs/user/132831.xlsx

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 07:11:34
Regina
Hi,
verstehe ich das richtig:
Der Benutzer gibt "Jens" ein und es soll dann auf einem neuen Blatt eine Liste aller Einträge für "jens" entstehen? Wenn nein, bitt emal eine Datei mit dem gewünschten Soll-Zustand schicken.
So recht verstehe ich auch den Aufbau Deiner Liste (korrekt müsste man eigentlich Listen sagen) nicht: Warum stehen die Daten nicht alle in den Splaten A bis C untereinander?
Gruß
Regina
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 08:42:09
Johannes
Hallo Regina,
ja, genau so soll es sein!:)
Ist eine Datenbank, die über die Jahre so angelegt wurde, wie Du im Screenshot siehst. Würde das Format an sich also nur sehr ungern ändern bzw. kann das gar nicht ändern (aufgrund des Umfangs). Sind also, wie Du richtig angemerkt hast, mehrere Listen.
Code hab isch bislang absolut nichts, da mir das Wissen dazu auch einfach noch fehlt.:/
Viele Grüße
Johannes
Anzeige
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 08:45:35
Regina
...die Listen stehen aber immer so nebeneinander (ohne Leerspalten, immer 3 Spalten als eine "Liste")?
Gruß
regina
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 08:53:09
Regina
...noch ein Hinweis: wenn Du mit den Kg-Werten rechnen willst, muss das Kg aus den Zellen raus, oder über ein benutzerdefiniertes Format erzeugt werden.
Gruß
Regina
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 10:32:18
Johannes
Ja, es stehen KEINE Leerspalten dazwischen und das mit dem kg muss ich dann über die Formatierung machen. Aber das kann ich machen. Mit dem VBA Code sieht es für mich da scon deutlich schwieriger aus:/
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 10:37:59
Regina
ok, dann teste mal den folgenden Code:

Public Sub Uebertrag()
Dim obj_wks_ziel As Worksheet
Dim obj_wks_quelle As Worksheet
Dim lng_spalte As Long
Dim lng_letzte_spalte As Long
Dim lng_letzte_zeile_quelle As Long
Dim lng_letzte_zeile_ziel As Long
Dim lng_zeile As Long
Dim str_name As String
str_name = InputBox("Auswertung für?")
ThisWorkbook.Worksheets.Add
ActiveSheet.Name = str_name
Set obj_wks_ziel = ActiveSheet
obj_wks_ziel.Range("A1") = "Name"
obj_wks_ziel.Range("A1") = "Datum"
obj_wks_ziel.Range("A1") = "Wert"
lng_letzte_zeile_ziel = 2
Set obj_wks_quelle = ThisWorkbook.Worksheets("Tabelle1")  ' Hier Quelltabellenblatt ggf.  _
benennen
With obj_wks_quelle
lng_letzte_spalte = .Cells(1, Columns.Count).End(xlToLeft).Column
For lng_spalte = 1 To lng_letzte_spalte - 2 Step 3
lng_letzte_zeile_quelle = .Cells(Rows.Count, lng_spalte).End(xlUp).Row
For lng_zeile = 1 To lng_letzte_zeile_quelle
If .Cells(lng_zeile, lng_spalte) = str_name Then
.Cells(lng_zeile, lng_spalte).Copy obj_wks_ziel.Cells(lng_letzte_zeile_ziel, 1)
.Cells(lng_zeile, lng_spalte + 1).Copy obj_wks_ziel.Cells(lng_letzte_zeile_ziel, _
2)
.Cells(lng_zeile, lng_spalte + 2).Copy obj_wks_ziel.Cells(lng_letzte_zeile_ziel, _
3)
lng_letzte_zeile_ziel = lng_letzte_zeile_ziel + 1
End If
Next
Next
End With
End Sub
Gruß
Regina
Anzeige
AW: Spaltenabfrage und Kopieren auf neues Blatt
29.10.2019 11:23:12
Johannes
Es klappt super, der Wahnsinn! Vielen Dank Dir!!!:)

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige