Hallo,
ich habe ein Makro geschrieben, das diese zweite Tabelle öffnet und diese durchläuft und dabei zählt, wie oft der Wert in der 3.Spalte vorkommt:
in der Liste ist bereits eine Zeile vorhanden, die die Anzahl enthält, wie hier die 191. Allerdings halte ich es für unkomplizierter, wenn ich erneut zählen lasse, denn dann kann ich die Zahlen leichter den Werten zuordnen.
Diese Anzahl soll in diese benannte Range (hier mit dem Namen "UserAff") geschrieben werden:
Das klappt so weit auch wunderbar. Probleme bekomme ich nur bei dem CH, da es in der Range nicht in der gleichen Reihenfolge wie in der zweiten Liste, in der ich zähle auftaucht. Durch einen Fehler, den ich seit 2 Tagen erfolglos suche in
meinem Code, addiert er dann nämlich zu dem CH noch die Anzahl eines anderen Wertes, der nicht in diese Range soll. Das habe ich eigentlich versucht ab Zeile 37 abzufangen, aber es hilft nichts. Wenn ich das "A = 0" in Zeile 38 nicht auskommentiert habe, bekomme ich in der Zielrange nur noch 1er angezeigt ab der zweiten Zeile.
Ich habe jetzt verschiedenste Varianten probiert, aber ich komme leider nicht mehr weiter.
Vielen Dank im Vorruas für eure Hilfe
Mit freundlichen Grüßen
MultiTobi96
ich habe ein Makro geschrieben, das diese zweite Tabelle öffnet und diese durchläuft und dabei zählt, wie oft der Wert in der 3.Spalte vorkommt:
Name 1 | ... | AT |
Name 2 | ... | AT |
Name 3 | ... | AT |
191 | ||
Name 4 | ... | BE |
Name 5 | ... | BE |
in der Liste ist bereits eine Zeile vorhanden, die die Anzahl enthält, wie hier die 191. Allerdings halte ich es für unkomplizierter, wenn ich erneut zählen lasse, denn dann kann ich die Zahlen leichter den Werten zuordnen.
Diese Anzahl soll in diese benannte Range (hier mit dem Namen "UserAff") geschrieben werden:
Jan | Feb | Mär... | |
AT | 191 | ||
BE | 46 | ||
BR | 201 | ||
CH | 17584 | ||
DK | 6 |
Das klappt so weit auch wunderbar. Probleme bekomme ich nur bei dem CH, da es in der Range nicht in der gleichen Reihenfolge wie in der zweiten Liste, in der ich zähle auftaucht. Durch einen Fehler, den ich seit 2 Tagen erfolglos suche in
meinem Code, addiert er dann nämlich zu dem CH noch die Anzahl eines anderen Wertes, der nicht in diese Range soll. Das habe ich eigentlich versucht ab Zeile 37 abzufangen, aber es hilft nichts. Wenn ich das "A = 0" in Zeile 38 nicht auskommentiert habe, bekomme ich in der Zielrange nur noch 1er angezeigt ab der zweiten Zeile.
Ich habe jetzt verschiedenste Varianten probiert, aber ich komme leider nicht mehr weiter.
Vielen Dank im Vorruas für eure Hilfe
Mit freundlichen Grüßen
MultiTobi96
Quellcode
- Sub SLA_füllen()
- Dim fd As FileDialog
- Dim user As String
- Dim oSourceSheet As Object
- Dim oWorkbookSource As Object
- Dim oTargetSheet As Object
- Dim monat As String
- monat = ActiveSheet.Cells(3, 16)
- Set oTargetSheet = ActiveWorkbook.Sheets(1)
- Set fd = Application.FileDialog(msoFileDialogFilePicker)
- fd.AllowMultiSelect = False
- If fd.Show = -1 Then
- For Each vrtSelectedItem In fd.SelectedItems
- Set oWorkbookSource = Workbooks.Open(vrtSelectedItem, True)
- Set oSourceSheet = oWorkbookSource.Sheets(1)
- Next vrtSelectedItem
- Else
- 'Abbruchbedingung
- MsgBox ("Bitte gesamte Userliste angeben. Programm wird beendet")
- Exit Sub
- End If
- For k = 2 To oSourceSheet.UsedRange.Rows.Count
- If oSourceSheet.Cells(k, 3).Value = oSourceSheet.Cells(k + 1, 3).Value Then
- A = A + 1
- Else
- 'Übertragen der Anzahl in die Zieltabelle
- For i = 1 To oTargetSheet.Range("UserAff").Rows.Count
- If oSourceSheet.Cells(k, 3).Value = oTargetSheet.Range("UserAff").Cells(i, 1).Value Then
- oTargetSheet.Range("UserAff").Cells(i, 8).Value = A + 1
- A = 0
- k = k + 1
- Else
- 'A = 0
- k = k + 1
- End If
- Next i
- End If
- Next k
- oWorkbookSource.Close
- End Sub