19.04.2021, 08:08 
		
	
	
		Halllo,
ich bin Neuling in der VBA-Programmierung - meine erste Programmierung - und habe ein Problem bei meinem letzten Code.
Bei der Durchsicht des Forums/Internets habe ich einen Code/Beitrag gefunden, der meinen Vorstellungen sehr nahe kommt.
https://www.clever-excel-forum.de/thread...+schreiben
Diesen habe ich auf meine Tabelle angepasst:
Es gelingt mir aber leider nicht folgende Änderungen mit aufzunehmen:
- die Daten sollen nur in das Tabellenblatt "Statistik" übertragen werden, wenn in Spalte D ein Eintrag in den Zellen steht
- im Anschluss daran sollen die übernommenen Zeilen aus den Tabellenblättern 1 bis 10 gelöscht werden.
Ich habe eine Beispieldatei inklusive der weiteren Codes (auskommentiert) angehängt. Diese funktionieren soweit einwandfrei.
Die Tabelle wird laufend neu befüllt.
Wäre es möglich derart die Übernahme der Daten zu variieren, dass
- bei Eingabe eines "x" nur die Spalten A - D und
- bei Eingabe der Kürzel "P1", "P4", "P6", "N1", "N2", "N3"; "N4" die gesamte Zeile übertragen wird?
Kann mir bitte jemand helfen. Vielen Dank!
Gruß
Ramona
	
ich bin Neuling in der VBA-Programmierung - meine erste Programmierung - und habe ein Problem bei meinem letzten Code.
Bei der Durchsicht des Forums/Internets habe ich einen Code/Beitrag gefunden, der meinen Vorstellungen sehr nahe kommt.
https://www.clever-excel-forum.de/thread...+schreiben
Diesen habe ich auf meine Tabelle angepasst:
Code:
Public Sub Worksheet_Activate()
  Dim i As Long
  Dim varQ As Variant
  Me.Range(Me.Cells(2, 1), Me.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 4)) = "" 'ab A2 Zeilen leeren
  For i = 1 To 10 'Anzahl vorhandener Tabellenblätter
    With Worksheets(i)
      If Len(.Cells(13, 1)) Then 'Zelle A13 befüllt dann
        varQ = .Range(.Cells(13, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4).Value 'ab Zelle A13 bis zum Ende Daten aus den Spalte A bis D einsammeln
      Else
        ReDim varQ(0)
      End If
    End With
    If UBound(varQ) Then
      With Me.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(varQ))
        .Value = Worksheets(i).Name 'Herkunft der Daten
        .Offset(, 1).Resize(, UBound(varQ, 2)).Value = varQ 'nacheinander in das Tabellenblatt schreiben
      End With
    End If
  Next i
End SubEs gelingt mir aber leider nicht folgende Änderungen mit aufzunehmen:
- die Daten sollen nur in das Tabellenblatt "Statistik" übertragen werden, wenn in Spalte D ein Eintrag in den Zellen steht
- im Anschluss daran sollen die übernommenen Zeilen aus den Tabellenblättern 1 bis 10 gelöscht werden.
Ich habe eine Beispieldatei inklusive der weiteren Codes (auskommentiert) angehängt. Diese funktionieren soweit einwandfrei.
Die Tabelle wird laufend neu befüllt.
Wäre es möglich derart die Übernahme der Daten zu variieren, dass
- bei Eingabe eines "x" nur die Spalten A - D und
- bei Eingabe der Kürzel "P1", "P4", "P6", "N1", "N2", "N3"; "N4" die gesamte Zeile übertragen wird?
Kann mir bitte jemand helfen. Vielen Dank!
Gruß
Ramona

 Statistik erstellen
				
![[-]](https://www.clever-excel-forum.de/images/collapse.png)
