Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1636to1640
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

Variable Spalten und Zeilen definieren

Variable Spalten und Zeilen definieren
08.08.2018 00:56:22
Tino
Hallo liebe VBA Profis
Ich habe eine Tabelle entworfen, die mir eine Verwaltungsübersicht gibt. Nun möchte ich eine Statistische Auswertung erreichen und bin mit meinem Latein fast am Ende.
Aufbau:
In Spalte E-G stehen bis zu drei Nummern von Karten, die in Spalte C ausgewählt werden können und in AA ändere ich den Status der Karte.
Bau der Blackbox (Aufzeichnung der Bewegung):
Die Kartennummer aus C nach BA oder wenn belegt nach BD, etc. kopieren.
BB und BC sowie BE und BF etc. müssen für Status und Datum der Bewegung frei bleiben. Wird in der Spalte E-G eine Nummer gelöscht, soll diese hinten stehen bleiben und den Status „Verlust“ bekommen.
Der Status der Karte wird in der Spalte AA gesetzt. Dieser soll nach BB, BE, etc. zur entsprechenden Karte kopiert werden und sich mit dem Status der Karte ändern.
Die Zelle BC wäre dann für das Datum gedacht, damit Excel erkennen kann, dass eine Karte auf BA oder BG etc. wieder auftaucht, nachdem sie in BD205 als „Verlust“ stand und diese dann wieder als „Zurück“ gebucht wird.
Alle Kartennummern, der Status und das Datum sollen in der Statistik gespeichert bleiben.
Am Ende will ich Zahlen ausgegeben bekommen, die ich als Statistik in ein Diagramm verpacken kann.
Die Schwierigkeit für mich ist, dass ich mit variablen Zeilen und Spalten arbeiten muss und nicht den richtigen Lösungsweg sehe.
Meine Test Mappe habe ich angehangen: https://www.herber.de/bbs/user/123194.xlsx
Kann mir bitte jemand helfen?
Vielen Dank im Voraus!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Spalten und Zeilen definieren
09.08.2018 04:22:35
Tino
Guten Morgen Zusammen,
da noch keiner meinen Beitrag kommentiert hat, habe ich mich nochmalig nachgedacht, wie es möglich ist die Daten zu speichern.
Mein Ansatz sieht wie folgt aus:
Private Sub Worksheet_Change(ByVal Target As Range)
'setzt das Datum für die Änderung in der Tabelle auf Spalte AH.
Dim rngz As Range
Dim rngzy As Range
Dim lngLetzte As Long
On Error GoTo Ende
Application.EnableEvents = False
If Target.Column = 27 Then
For Each rngz In Application.Intersect(Columns("AA:AA"), Target).Cells
rngz.Offset(0, 7).Value = Date
Next rngz
End If
'Kopiert die Nummer aus der aktiven Zelle in Spalte C nach BA in die nächste Freie Zelle
If Target.Column = 3 Then
lngLetzte = ActiveSheet.Cells(Rows.Count, "BA").End(xlUp).Row + 1
For Each rngzy In Application.Intersect(Columns("C:C"), Target).Cells
rngz.Offset(lngLetzte, 50).Value = Cells(rngzy, 3)
Next rngzy
End If
Ende:
Application.EnableEvents = True
End Sub
Leider habe ich keine Ahnung wo der Fehler liegt. Das Datum erscheint aber der Zweite Teil, also das kopieren der Zelle z.B. C13 in die Spalte BA führt es nicht durch. Wo habe ich einen Denkfehler oder fehlende Kenntnisse?
Bitte helft mir auf die Sprünge! Vielen Dank!
Anzeige
AW: Variable Spalten und Zeilen definieren
11.08.2018 21:30:35
Sandra
Hallo Tino
Ich weiß jetzt nicht, ob Sie den Fehler schon gefunden haben, jedoch müsste der Code
For Each rngzy In Application.Intersect(Columns("C:C"), Target).Cells
rngz.Offset(lngLetzte, 50).Value = Cells(rngzy, 3)
Next rngzy
wie folgt lauten
For Each rngzy In Application.Intersect(Columns("C:C"), Target).Cells
rngz.Offset(lngLetzte, 50).Value = Cells(rngzy.row, 3)
Next rngzy
Sie müssen die Endung .row für die Wertübernahme anfügen, weil dies sonst von Excel als .value interpretiert wird.
Gruss
Sandra
AW: Variable Spalten und Zeilen definieren
16.08.2018 12:40:37
Tino
Hallo Sandra,
vielen Dank für deine Antwort. Sry das ich heute erst schreibe aber die letzten Tage waren völlig zu.
Ich habe eine Lösung für das Kopieren aus Spalte C gefunden, welche mir sehr gut gefällt.
Hierdurch vermeide ich unnütze doppelte Werte aus C.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C:C")) Is Nothing Or Target = "" Then Exit Sub
Cells(Cells(Rows.Count, 53).End(xlUp).Row + 1, 53) = Target.Cells.Offset(0, 38).Value
Cells(Cells(Rows.Count, 54).End(xlUp).Row + 1, 54) = Target.Cells.Offset(0, 39).Value
Cells(Cells(Rows.Count, 55).End(xlUp).Row + 1, 55) = Target.Cells.Offset(0, 40).Value
Cells(Cells(Rows.Count, 56).End(xlUp).Row + 1, 56) = Target.Cells.Offset(0, 41).Value
Cells(Cells(Rows.Count, 57).End(xlUp).Row + 1, 57) = Target.Cells.Offset(0, 42).Value
End Sub
Nach einem Gespräch mit meinem Kollegen ist mir aufgefallen das ich immernoch zuviele Daten sammel.
Nun möchte Ich prüfen ob in Spalte „AA“ der Wert Temp.Gesperrt oder der Wert Aktiv zu finden ist und erst dann Kopieren.
Mein Ansatz hierzu ist:
If Target.Cells.Offset(0, 24).Value = "Temp. Gesperrt" or “Active” Then
Und wie von mir schon fast erwartet tut sich nichts  wie müsste ich die Abfrage umbauen damit VBA es schluckt?
Anzeige

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige