Excel mit VBA
#1
Guten Abend zusammen,
ich brauche die Hilfe von VBA kennern ::D
ich habe folgendes vor.
Es gibt 2 Arbeitsblätter. Tabelle 1 und Tabelle 2.
In Tabelle 1 gibt es 4 Spalten kurz 1 2 3 4
In Tabelle 2 gibt es die selben. Folgendes ist der Plan. Tabelle 1 dient als Datenbank. Nun soll bei doppelklick auf einer Zelle in spalte 1 der Inhalt kopiert werden und in Tabelle 2 in Spalte 1 eingefügt werden. Das selbe für spalte 2 3 und 4 also jeweils spalte zu spalte. Hinzu kommen 2 Dinge.
1. In Tabelle 1 sind natürlich viele Zeilen in den jeweiligen spalten d.h. das Makro muss in jeder Zeile der jeweiligen Spalte funktionieren.
2. In Tabelle 2 muss der eingefügte Wert in der nächsten freien Zeile stehen und nicht den ersten Wert über schreiben. Um das Ganze ab zu runden ein kleines Beispiel.
Tabelle 1 spalte 1  1 Zeile Mais
                            2 Zeile Kartoffeln
                            8 Zeile Kraut
                          12 Zeile Gurken
Doppelklick auf Kartoffeln dann soll in Tabelle 2 in spalte 1 Zeile 1 Kartoffeln stehen
Doppelklick auf Kraut dann soll in Tabelle 2 spalte 1 Zeile 2 Kraut stehen
Doppelklick auf Mais dann soll in Tabelle 2 spalte 1 Zeile 3 Mais stehen
usw.
Das selbe dann auch für spalte 2 3 und 4
ich hoffe ihr versteht alles und könnt mir helfen Angel 
Schönen Abend und Gute nacht
moe
Top
#2
Hallo

das gehört hinters Tabellenblatt1


Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   Dim lngZiel As Long
   If Not Intersect(Target, Columns("A:D")) Is Nothing Then
       Cancel = True
       With Sheets("Tabelle2")
           lngZiel = .Cells(.Rows.Count, Target.Column).End(xlUp).Row + 1
           .Cells(lngZiel, Target.Column) = Target.Value
       End With
   End If
End Sub

MfG Tom
Top
#3
Hallo,

Du hast nicht geschrieben, was dann danach mit der Kartoffel passieren soll. Blush 

Tom war zwar früher, aber hier trotzdem eine zusätzliche Variante, welche auch nach Rom führt:


Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Select Case Target.Column
   Case 1 To 4 And Target.Row > 1
   Cancel = True
   Sheets("Tabelle2").Cells(Sheets("Tabelle2").Cells(Rows.Count, Target.Column).End(xlUp).Row + 1, Target.Column).Value = Target.Value
 End Select
End Sub
Gruß Atilla
Top
#4
Herzlichen Guten Abend zusammen,
Ihr seid wirklich spitze funktioniert einwandfrei. Nur leider jagt ein Problem das nächste. Folgendes ist nun der Stand. Es geht um einen Kochplan. Ich kann jetzt aus der Datenbank von Tabelle 1 die Zutaten in Tabelle 2 einfügen. Klappt super. Jetzt habe ich auf Blatt2 Hilfszellen, direkt neben den Zutaten, mit einer Dropdown Liste versehen. Montag bis Sonntag. Kurz zu erläuterung  Spalte 1 Mais Spalte 2 Montag (Ausgewählt über dropdown). Auf Tabellenblatt 3 Soll der Plan Montag bis Sonntag stehen. Montag ist Spalte 1. Da steht in der ersten Zeile "=WENN(Tabelle2!B2="Montag";Tabelle2!A2;)" Funktioniert auch ganz gut. Nun kommt das Problem. Ich brauche die Zutat die in Tabelle A2 steht am Montag und z.B. am Mittwoch. Nun habe ich ja 2 Möglichkeiten Ich Füge die Zutat ein 2 mal hinzu auf Tabelle 2 und wähle Mittwoch aus das ist aber äußerst umständlich, oder ich änder in B2 von Montag auf Mittwoch. Bei der 2 Variante geht mir aber dann bei Montag die Zutat flöten, weil der Bezug fehlt.
Nun die Frage. Gibt es eine Möglichkeit, dass ich Montag anwähle, die Zutat bei Montag steht. Den Tag von der Zutat auf Mittwoch ändere,also ohne die Zutat ein 2 mal einzufügen und denn die Zutaten bei Montag und Mittwoch stehen habe? Wenn das irgendwie geht müssten dann die Zutaten auch untereinander stehen also, wenn ich am Mittwoch z.B. 3 Zutaten habe, dass dann nicht der erste Wert überschrieben wird. :16:
Ich hoffe ihr versteht das und könnt mir genau so super helfen wie oben.
Lg
Top
#5
Hallo moe,

also, die Zutaten für die einzelnen Tage nacheinander einzufügen ist ja nicht verkehrt. Und dass Da welche für Montag sind und welche für Mittwoch, kann Excel ja auch nicht von alleine entscheiden, das musst Du schon mitteilen. Dazwischen fehlt ja auch noch der Dienstag, auch nicht einfach zu entscheiden ...

Den Tag könntest Du doch auch per Doppelklick übernehmen. Oder, wenn die Tage nebeneinander stehen und darunter die Zutaten, könntest Du in Abhängigkeit von der Tagesauswahl mal die Spalte 1 für Montag füllen, Dienstag Spalte 2 usw.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste