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

Daten finden und kopieren

Daten finden und kopieren
13.03.2023 08:55:29
Dennis04
Hallo zusammen,
ich habe mich in dem Forum angemeldet, da ich mit einer Fragestellung zum Thema VBA an meine Grenzen stoße.
Bei der Fragestellung geht es um einen Schichtplan. Ich habe eine Beispieltabelle angehängt, in der verschiedene Personen aufgeführt sind, die an unterschiedlichen Tagen unterschiedliche Tätigkeiten ausführen. Der Plan umfasst dabei immer ein ganzes Jahr.
Ich möchte mir nun über einen Button die Daten für eine bestimmte KW heraussuchen, diese Daten kopieren und in einem neuen Tabellenblatt einfügen. Das Kopieren und Einfügen ist dabei kein Thema. Die Frage ist eher wie ich bei VBA nach einer bestimmten Kalenderwoche suchen kann und die darunterliegenden Zellen markieren kann.
Ich hoffe ich habe meine Problematik gut genug beschrieben.
Viele Grüße
Dennis04
https://www.herber.de/bbs/user/158237.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten finden und kopieren
13.03.2023 09:16:30
Fennek
Hallo,
ein Vorschlag:
Sub F_en()
Dim rng As Range, Wch As Integer
Wch = 11    'gesuchte Woche
For j = 2 To Cells(2, Columns.Count).End(xlToLeft).Column
    If Cells(2, j) = Wch Then
        Columns(j).Copy Sheets(2).Cells(2, Columns.Count).End(xlToLeft).Offset(-1, 1)
    End If
Next j
End Sub
mfg
PS: Ist Excel auf Android nutzbar?
AW: Daten finden und kopieren
13.03.2023 09:26:17
GerdL
Hallo Dennis!
Private Sub CommandButton1_Click()
    Dim a As Long, b As Long
    
    KW = InputBox("Woche als Zahl", Kalenderwoche, "1")
    
    If Not IsNumeric(KW) Then Exit Sub
    
    Select Case Int(KW)
    
        Case 1 To 53
    
            a = Application.Match(KW, Rows(2), 0)
            b = Application.Match(KW, Rows(2), 1)
        
            Call Range(Columns(a), Columns(b)).Copy
            Call Tabelle2.Cells(1, 1).PasteSpecial(Paste:=xlPasteAll)
            Application.CutCopyMode = False
        
        Case Else
        
    End Select
    
End Sub
Gruß Gerd
Anzeige
AW: Daten finden und kopieren
13.03.2023 10:07:18
Dennis04
Hallo Gerd,
danke dir für den Code. Beim Ausführen sagt Excel mir "Typen unverträglich" in der Spalte wo steht a=..
Hast du dafür auch eine Lösung?
AW: Daten finden und kopieren
13.03.2023 10:28:25
GerdL
Hallo Detlef,
es fehlt bei den Deklarationen
Dim KW As Variant
Das ist aber nicht die Problemlösung.
Ist das Quellblatt aktiv?
Sind deine Kalenderwochen-Zahlen in der Zeile 2 ?
Gruß Gerd
AW: Daten finden und kopieren
13.03.2023 10:30:43
GerdL
Entschuldige, Dennis
natürlich.
AW: Daten finden und kopieren
13.03.2023 10:35:15
Dennis04
Hallo Gerd,
das Quellblatt ist aktiv und die Werte stehen in der Zeile 2.
Ich habe es erstmal mit der Beispieltabelle versucht, die ich verlinkt habe. Daher sind die Werte genau so wie dort dargestellt.
Es kommt weiterhin der beschriebene Laufzeitfehler 13 "Typen unverträglich".
Viele Grüße
Dennis
Anzeige
AW: Daten finden und kopieren
13.03.2023 10:53:27
GerdL
Oje, da habe ich zuwenig an den Variablentypen geschraubt.
Private Sub CommandButton1_Click()
    
        Dim KW As Variant, a As Variant, b As Variant
        KW = InputBox("Woche als Zahl", Kalenderwoche, "1")
        
        If Not IsNumeric(KW) Then Exit Sub
        
        Select Case Int(KW)
         
            Case 11 To 13   'vorhandene KW-Wochennummern
        
                a = Application.Match(CInt(KW), Rows(2), 0)
                b = Application.Match(CInt(KW), Rows(2), 1)
            
                Call Range(Columns(a), Columns(b)).Copy
                Call Tabelle2.Cells(1, 1).PasteSpecial(Paste:=xlPasteAll)
                Application.CutCopyMode = False
            
            Case Else
            
        End Select
        
    
    End Sub
    
Gruß Gerd
Anzeige
AW: Daten finden und kopieren
13.03.2023 10:56:23
Dennis04
Perfekt, funktioniert wunderbar.
Vielen Dank und noch einen schönen Tag :)
AW: Daten finden und kopieren
13.03.2023 11:05:19
Daniel
Hi
Dim Zelle1 AS range
Dim Zelle2 AS Range
Dim KW AS String
KW =Inputbox(...)
If KW = "" then Exit sub
With Rows(2)
    Set Zelle1 = .Find(what:=KW, lookat:=xlwhole, searchdirection:=xlnext)
    Set Zelle2 = .Find(what:=KW, lookat:=xlwhole, searchdirection:=xlprevious)
End With
If Zelle1 is nothing then
    Msgbox "KW nicht gefunden"
Else
    Intersect(Range(Zelle1, Zelle2).EntireColumn, Range("5:12")).Copy
    Und hier dann das Einfügen
End if
Wenn die KW immer 7 Tage hat, reicht es auch , wenn du nur nach Zelle1 suchst und dann so kopierst
Zelle1.Offset(3, 0).Resize(8, 7).Copy
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige