Hallo,
ich habe leider keine Ahnung von VBA und bräuchte Hilfe. Ich habe eine Exceltabelle (Rollentypen) mit folgenden Begriffen:
Rollentypen |
|
Rolle1 |
|
Rolle2 |
|
Rolle3 |
|
Nach diesen Begriffen möchte ich nacheinander in einer anderen Tabelle (Bedarfe) suchen lassen:
Final Variante |
Stückzahl |
Produktionsdatum |
Datum in Zahlen |
Rollentype |
Stückzahl |
Stückzahl Rolle |
LagerA |
450 |
01.01.2014 |
41640 |
Rolle1 |
13 |
5850 |
LagerB |
800 |
02.01.2014 |
41641 |
Rolle1 |
17 |
13600 |
LagerC |
1500 |
02.01.2014 |
41641 |
Rolle2 |
13 |
19500 |
LagerB |
1250 |
03.01.2014 |
41642 |
Rolle1 |
17 |
21250 |
LagerC |
20 |
04.01.2014 |
41643 |
Rolle2 |
13 |
260 |
LagerA |
350 |
08.01.2014 |
41647 |
Rolle1 |
13 |
4550 |
Als Ausgabe möchte ich nun folgendes haben:
Rollentypen |
Stückzahl Rolle |
Produktionsdatum |
Rolle1 |
5850 |
01.01.2014 |
|
13600 |
02.01.2014 |
|
21250 |
03.01.2014 |
|
4550 |
08.01.2014 |
Rolle2 |
19500 |
02.01.2014 |
|
260 |
04.01.2014 |
Rolle3 |
0 |
|
Das Programm soll also im ersten Schritt nach dem ersten Begriff in Tabellenblatt "Rollentypen" suchen: in diesem Fall "Rolle1"
Dann soll es nach "Rolle1" in Tabellenblatt "Bedarfe" suchen und jeweils die Stückzahl und das Produktionsdatum ausgeben. Und zwar alle Werte untereinander.
Dann soll es mit dem 2. Begriff "Rolle2" weitermachen...
Habe schon etwas geschrieben - gibt mir aber leider nur den letzten Wert den er gefunden hat aus:
Rolle1 |
4550 |
Rolle2 |
260 |
Rolle3 |
0 |
Option Explicit
Private Sub CommandButton1_Click()
Dim i, j, k As Integer
Dim Rollenanzahl As Double
Dim Rollentyp, Suche As String
Application.ScreenUpdating = False
k = 3
For i = 2 To 4
Sheets("Rollentypen").Select
Sheets("Rollentypen").Range("A" & i).Select
Rollentyp = Sheets("Rollentypen").Range("A" & i).Value
j = 2
Sheets("Bedarfe").Select
Sheets("Bedarfe").Range("E" & j).Select 'Tabelle mit Rollenanzahl wird durchsucht
Rollenanzahl = 0
For j = 2 To 17
If Sheets("Bedarfe").Range("E" & j).Value = Rollentyp Then
Rollenanzahl = Sheets("Bedarfe").Range("G" & j).Value
End If
Next j
Sheets("Auswertung").Select
Sheets("Auswertung").Range("A" & k).Value = Rollentyp
Sheets("Auswertung").Range("B" & k).Value = Rollenanzahl
k = k + 1
Next i
Application.ScreenUpdating = True
End Sub
|