Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Button zum ziehen.

Button zum ziehen.
24.01.2017 14:18:57
Andrea
Guten tag:-)
ich habe eine liste
ab Zeile 3
Spalte A = Mitarbeiter
Spalte B = Datum
jetzt möchte ich gerne über einen Button das wenn ein Datum beim Mitarbeiter drin steht, dann soll es den Mitarbeiter mit Datum in Tabellenblatt 2 rüberzieht. Und nach Datum anschließend nach Namen sortiert.
Die verschobenen Mitarbeiter in Tabellenblatt 1 sollen gelöscht werden und die Leerzeilen gelöscht werden das die Liste kleiner geht.
Ich hoffe ihr könnt mir helfen.
Danke an alle

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button zum ziehen.
24.01.2017 14:43:10
UweD
Hallo
in ein normales Modul
Sub MA_verschieben()
    Dim TB2, LR As Long
    Set TB2 = Sheets("Tabelle2")
    
    'Reset 
    TB2.Cells.ClearContents
    
    With Sheets("Tabelle1")
        If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten 
        LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte A 
        .Range("A2:B" & LR).AutoFilter Field:=1, Criteria1:="<>""""", Operator:=xlAnd
        .Range("A2:B" & LR).AutoFilter Field:=2, Criteria1:="<>"
        .Range("A3:B" & LR).Copy TB2.Range("A3") 'Zielzelle A3 
        .Range("A3:B" & LR).EntireRow.Delete xlUp
        .AutoFilterMode = False
        TB2.UsedRange.Value = TB2.UsedRange.Value 'ggf Formeln raus 

    
    End With
End Sub

LG UweD
Anzeige
AW: Button zum ziehen.Frage
25.01.2017 05:30:30
Andrea
Hallo danke für eine Hilfe.
Aber er zieht die Daten in das Tabellenblatt rüber, Aber er überschreibt die anderen, anstatt unten drunter.Und leider wird es nicht sortiert in Tabelle 2 nach Datum anschließend nach Namen.
Danke
AW: Button zum ziehen.Frage
25.01.2017 07:47:22
Matthias
Hallo
Option Explicit
Sub MA_verschieben() 'von Uwe D
Dim TB2, LR As Long, LR2 As Long
Set TB2 = Sheets("Tabelle2")
    With Sheets("Tabelle2")
LR2 = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte A
End With
With Sheets("Tabelle1")
If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte A
.Range("A2:B" & LR).AutoFilter Field:=1, Criteria1:="""""", Operator:=xlAnd
.Range("A2:B" & LR).AutoFilter Field:=2, Criteria1:=""
.Range("A3:B" & LR).Copy TB2.Range("A" & LR2 + 1) 'Zielzelle
.Range("A3:B" & LR).EntireRow.Delete xlUp
.AutoFilterMode = False
TB2.UsedRange.Value = TB2.UsedRange.Value 'ggf Formeln raus
End With
End Sub
Die Sortierung kannst Du mal mit dem Rekorder aufzeichnen
und dann versuchen mit einzupflegen.
Gruß Matthias
Anzeige
AW: Button zum ziehen.Frage
25.01.2017 08:56:21
Andrea
Hallo,
er löscht die immer noch in der Tabelle 2 raus. Auch die ersten 2 Zeilen werden immer gelöscht.
AW: Button zum ziehen.Frage
25.01.2017 08:57:03
Andrea
Hallo,
er löscht die immer noch in der Tabelle 2 raus. Auch die ersten 2 Zeilen werden immer gelöscht.
AW: Button zum ziehen.Frage
25.01.2017 08:45:28
UweD
Hallo
Matthias hat ja schon Vorarbeit geleistet...
hier noch das Sortieren
Sub MA_verschieben() 'von Uwe D 
    
    Dim TB2, LR1 As Long, LR2 As Long
    Set TB2 = Sheets("Tabelle2")
    
    LR2 = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1
    
    With Sheets("Tabelle1")
        If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten 
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A2:B" & LR1).AutoFilter Field:=1, Criteria1:="<>""""", Operator:=xlAnd
        .Range("A2:B" & LR1).AutoFilter Field:=2, Criteria1:="<>"
        .Range("A3:B" & LR1).Copy TB2.Range("A" & LR2) 'Zielzelle 
        .Range("A3:B" & LR1).EntireRow.Delete xlUp
        .AutoFilterMode = False
         TB2.UsedRange.Value = TB2.UsedRange.Value 'ggf Formeln raus 
    End With
    
    'Sortieren 
    With TB2
        LR2 = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=.Range("B3:B" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=.Range("A3:A" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("A2:B" & LR2)
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With

End Sub

LG UweD
Anzeige
AW: letzte frage
25.01.2017 09:05:58
Andrea
Hallo
es geht :-)
aber nur ein Problem.
Wenn in Spalte A Daten drin stehen und in Spalte B nix drin steht. Und drücke den Button dann zieht er alles rüber. Wäre besser wenn eine Meldung kommen würde " Kein Datum eingetragen "
somit bleiben die andern stehen
AW: letzte frage
25.01.2017 09:21:57
UweD
Hallo
dann so...
Sub MA_verschieben() 'von Uwe D 
    
    Dim TB2, LR1 As Long, LR2 As Long
    Set TB2 = Sheets("Tabelle2")
    
    LR2 = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1
    
    With Sheets("Tabelle1")
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row
        If WorksheetFunction.CountA(.Range("B3:B" & LR1)) = 0 Then
            MsgBox "Kein Datum vorhanden!"
            Exit Sub
        End If
        If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten 
        .Range("A2:B" & LR1).AutoFilter Field:=1, Criteria1:="<>""""", Operator:=xlAnd
        .Range("A2:B" & LR1).AutoFilter Field:=2, Criteria1:="<>"
        .Range("A3:B" & LR1).Copy TB2.Range("A" & LR2) 'Zielzelle 
        .Range("A3:B" & LR1).EntireRow.Delete xlUp
        .AutoFilterMode = False
         TB2.UsedRange.Value = TB2.UsedRange.Value 'ggf Formeln raus 
    End With
    
    'Sortieren 
    With TB2
        LR2 = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=.Range("B3:B" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=.Range("A3:A" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("A2:B" & LR2)
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With

End Sub

LG UweD
Anzeige
AW: letzte frage
25.01.2017 12:59:05
Andrea
super danke.
Jetzt will der Kollege das Datum in Spalte D haben weil in Spalte B und C noch andere Daten rein muss.
Die sollen aber auch mit verschoben werden. Also A : D
. Wie muss ich den Code anpassen.
Ich hoffe du kannst du noch einmal helfen.
sorry nervt mich jetzt selber total
AW: letzte frage
25.01.2017 13:21:53
UweD
Sub MA_verschieben() 'von Uwe D 
    
    Dim TB2, LR1 As Long, LR2 As Long
    Set TB2 = Sheets("Tabelle2")
    
    LR2 = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1
    
    With Sheets("Tabelle1")
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row
        If WorksheetFunction.CountA(.Range("D3:D" & LR1)) = 0 Then
            MsgBox "Kein Datum vorhanden!"
            Exit Sub
        End If
        If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten 
        .Range("A2:D" & LR1).AutoFilter Field:=1, Criteria1:="<>""""", Operator:=xlAnd
        .Range("A2:D" & LR1).AutoFilter Field:=4, Criteria1:="<>"
        .Range("A3:D" & LR1).Copy TB2.Range("A" & LR2) 'Zielzelle 
        .Range("A3:D" & LR1).EntireRow.Delete xlUp
        .AutoFilterMode = False
         TB2.UsedRange.Value = TB2.UsedRange.Value 'ggf Formeln raus 
    End With
    
    'Sortieren 
    With TB2
        LR2 = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=.Range("D3:D" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=.Range("A3:A" & LR2) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("A2:D" & LR2)
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With

End Sub

Anzeige
sperma Danke für alles :-)
25.01.2017 14:38:31
Andrea
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige