Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Datumsbereich markieren und in anderes Blatt kopieren
#11
Hallo,

Hab gerade gesehen, dass Du zwischenzeitlich eine Datei eingestellt hast.
Dann ersetze Deinen Code hinter der Userform mit diesem:

Code:
Private Sub CommandButton1_Click()
Dim lngLast As Long

   With Sheets("Tabelle2")
      .Cells.Clear
      .Range("A1:B1") = Worksheets("Auswertung-Eingabe").Range("D1").Value
      .Range("A2") = ">=" & Format(TextBox1.Text, "YYYY-MM-DD")
      .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")
   End With
  
   With Worksheets("Auswertung-Eingabe")
      lngLast = .Cells(.Rows.Count, 4).End(xlUp).Row
      .Range("D1:J" & lngLast).AdvancedFilter Action:= _
           xlFilterCopy, CriteriaRange:=Sheets("Tabelle2").Range("A1:B2"), CopyToRange:=Sheets("Tabelle2").Range("A5"), _
           Unique:=False
   End With
  
End Sub

Den Druckbereich musst Du dann ab a5 anpassen, könnte auch per Code geregelt werden.
Gruß Atilla
Antworten Top
#12
Hallo,


so mit Druckbereich ab A5 und Vorgaben, die erfüllt sein müssen:

Code:
Private Sub CommandButton1_Click()
   Dim lngLast As Long

   If TextBox1 <> "" Or TextBox2 <> "" Then
      With Sheets("Tabelle2")
         .Cells.Clear
         .Range("A1:B1") = Worksheets("Auswertung-Eingabe").Range("D1").Value
         If TextBox1 <> "" Then .Range("A2") = ">=" & Format(TextBox1.Text, "YYYY-MM-DD")
         If TextBox2 <> "" Then .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")
      End With
      
      With Worksheets("Auswertung-Eingabe")
         lngLast = .Cells(.Rows.Count, 4).End(xlUp).Row
         .Range("D1:J" & lngLast).AdvancedFilter Action:= _
              xlFilterCopy, CriteriaRange:=Sheets("Tabelle2").Range("A1:B2"), CopyToRange:=Sheets("Tabelle2").Range("A5"), _
              Unique:=False
      End With
      
      With Sheets("Tabelle2")
         lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
         .PageSetup.PrintArea = "$A$5:$C$" & lngLast
      End With
   End If
  
End Sub
Gruß Atilla
Antworten Top
#13
(30.12.2014, 22:45)Max schrieb: Hi,

ich bin dran.
Hast Du die Spalten "A:C" gelöscht, oder sind diese auch in Deiner kompletten Version leer?

Gruß
Max

Hi Max,

die Spalten A:C sind bewusst gelöscht.
Auch in der kompletten Version sind die leer.
Antworten Top
#14
(30.12.2014, 22:54)atilla schrieb: Hallo,


so mit Druckbereich ab A5 und Vorgaben, die erfüllt sein müssen:

Code:
Private Sub CommandButton1_Click()
   Dim lngLast As Long

   If TextBox1 <> "" Or TextBox2 <> "" Then
      With Sheets("Tabelle2")
         .Cells.Clear
         .Range("A1:B1") = Worksheets("Auswertung-Eingabe").Range("D1").Value
         If TextBox1 <> "" Then .Range("A2") = ">=" & Format(TextBox1.Text, "YYYY-MM-DD")
         If TextBox2 <> "" Then .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")
      End With
      
      With Worksheets("Auswertung-Eingabe")
         lngLast = .Cells(.Rows.Count, 4).End(xlUp).Row
         .Range("D1:J" & lngLast).AdvancedFilter Action:= _
              xlFilterCopy, CriteriaRange:=Sheets("Tabelle2").Range("A1:B2"), CopyToRange:=Sheets("Tabelle2").Range("A5"), _
              Unique:=False
      End With
      
      With Sheets("Tabelle2")
         lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
         .PageSetup.PrintArea = "$A$5:$C$" & lngLast
      End With
   End If
  
End Sub

Hab den Code mal ersetzt, funktioniert aber auch nicht so wie ich möchte.

Gebe ich zum Beispiel 1.2 und 6.5 ein, listet er mir die Werte bzw. Zeilen vom 09.05.2014 an.
Und das auch dann wenn ich einen anderen Bereich angebe. Komisch?
Geht also nicht! Trotzdem Danke für die Mühe!
Antworten Top
#15
(30.12.2014, 23:10)HannesBo schrieb:
(30.12.2014, 22:54)atilla schrieb: Hallo,


so mit Druckbereich ab A5 und Vorgaben, die erfüllt sein müssen:

Code:
Private Sub CommandButton1_Click()
   Dim lngLast As Long

   If TextBox1 <> "" Or TextBox2 <> "" Then
      With Sheets("Tabelle2")
         .Cells.Clear
         .Range("A1:B1") = Worksheets("Auswertung-Eingabe").Range("D1").Value
         If TextBox1 <> "" Then .Range("A2") = ">=" & Format(TextBox1.Text, "YYYY-MM-DD")
         If TextBox2 <> "" Then .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")
      End With
      
      With Worksheets("Auswertung-Eingabe")
         lngLast = .Cells(.Rows.Count, 4).End(xlUp).Row
         .Range("D1:J" & lngLast).AdvancedFilter Action:= _
              xlFilterCopy, CriteriaRange:=Sheets("Tabelle2").Range("A1:B2"), CopyToRange:=Sheets("Tabelle2").Range("A5"), _
              Unique:=False
      End With
      
      With Sheets("Tabelle2")
         lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
         .PageSetup.PrintArea = "$A$5:$C$" & lngLast
      End With
   End If
  
End Sub

Hab den Code mal ersetzt, funktioniert aber auch nicht so wie ich möchte.

Gebe ich zum Beispiel 1.2 und 6.5 ein, listet er mir die Werte bzw. Zeilen vom 09.05.2014 an.
Und das auch dann wenn ich einen anderen Bereich angebe. Komisch?
Geht also nicht! Trotzdem Danke für die Mühe!

Noch mal anderen Wert eingegeben...Textbox1 = 1.5 und Textbox2 = 1.8

er listet dann ab 1.5 bis Ende des Jahres, alles davor wird gelöscht.
Ich will aber den Bereich zwischen den beiden Daten haben.
Antworten Top
#16
Hallo,

hab mit Copy Paste einen Fehler eingebaut.

diese Zeile im Code:

If TextBox2 <> "" Then .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")

muss so lauten:

If TextBox2 <> "" Then .Range("B2") = "<=" & Format(TextBox2.Text, "YYYY-MM-DD")


Und für den Druckbereich so:

.PageSetup.PrintArea = "$A$5:$J$" & lngLast
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • HannesBo
Antworten Top
#17
(30.12.2014, 23:23)atilla schrieb: Hallo,

hab mit Copy Paste einen Fehler eingebaut.

diese Zeile im Code:

If TextBox2 <> "" Then .Range("B2") = ">=" & Format(TextBox2.Text, "YYYY-MM-DD")

muss so lauten:

If TextBox2 <> "" Then .Range("B2") = "<=" & Format(TextBox2.Text, "YYYY-MM-DD")


Und für den Druckbereich so:

.PageSetup.PrintArea = "$A$5:$J$" & lngLast

Hi atilla,

besten Dank!!! Das funktioniert so wie ich es haben möchte.
Tausend Dank...jetzt bin ich schon ein erhebliches Stück weiter...

Und auch vielen Dank an Max...

Danke euch!!!:2828:2828:15:

Sollte man sich nicht mehr vor dem Jahreswechsel im Forum begegnen wünsche ich euch einen guten Rutsch ins neue Jahr und zudem Gesundheit und viel Erfolg in allem was ihr euch für das kommende Jahr vorgenommen habt.
Antworten Top
#18
Hi,

so sollte es gehen.


.xlsm   Pearseri_Max.xlsm (Größe: 27,33 KB / Downloads: 22)

Gruß
Max
Antworten Top


Gehe zu:


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