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

Range mit dynamischer Spalte

Range mit dynamischer Spalte
08.04.2021 17:38:23
x.x
Hallo
ich möchte

Range("$BD$3:$BG$3")
ersetzen durch einen dynmaischen Wert. Dafür suche ich zunächst die Spalte mit dem Wert "Datum" und möchte dann die nächste, rechts davon nehmen, d.h. irgendwie in dem Format Cells(3, Such.Column +1)
Code:

'Datum transponieren
Dim Such As Range
Such = Sheets("A.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:=xlWhole)
Sheets("N.").Range("$BD$3:$BG$3").Copy
Sheets("Imp").Range("$F$2:F" & Cells(Rows.Count, 1).End(xlUp).Row).PasteSpecial Paste:= _
xlPasteValues, Transpose:=True
Columns("F:F").NumberFormat = "m/d/yyyy"

Wäre dankbar für Tipps!
LG

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range mit dynamischer Spalte
08.04.2021 18:31:05
Daniel
Hi
wenn du die Spaltennummer brauchst:
Dim Such as Long
Such = Sheets("A.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:=xlWhole).Column + 1
als Zelle
 Dim Such as Range
Set Such = Sheets("A.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1)
Gruß Daniel
AW: Range mit dynamischer Spalte
08.04.2021 18:34:24
x.x
Danke Daniel!
Mein Problem ist eher, dass ich nicht weiß, wie ich die Spaltenbuchstaben BD/BG durch die dynamische Spalte ersetzen soll, damit der Code noch funktioniert.
Hast du einen Tipp
AW: Range mit dynamischer Spalte
08.04.2021 18:40:57
Werner
Hallo,
meinst du so:
  • 
    Sub Schaltfläche1_Klicken()
    Dim Such As Range
    Set Such = Sheets("A.").Rows(3).Find(what:="Datum", _
    LookIn:=xlValues, lookat:=xlWhole)
    If Not Such Is Nothing Then
    Sheets("N.").Cells(3, Such.Column).Offset(, 1).Resize(, 4).Copy
    With Sheets("Imp")
    .Cells(.Cells(.Rows.Count, "F").End(xlUp).Offset(1).Row, "F") _
    .PasteSpecial Paste:=xlPasteValues, Transpose:=True
    .Columns("F").NumberFormat = "m/d/yyyy"
    End With
    Else
    MsgBox "Es gibt keine Spalte Datum."
    End If
    Set Such = Nothing
    Application.CutCopyMode = False
    End Sub
    

  • Wobei mir das seltsam vorkommt. Du suchst "Datum" im Blatt "A." kopierst dann aber aus dem Blatt "N.".
    Gruß Werner
    Anzeige
    AW: Range mit dynamischer Spalte
    09.04.2021 11:09:09
    Guest
    Hallo Werner,
    tut mir sehr leid - ich habe den Code komplett übersehen. Das werde ich gleich mal ausprobieren - danke!
    AW: Range mit dynamischer Spalte
    09.04.2021 11:12:38
    Guest
    Hallo Werner,
    tut mir sehr leid - ich habe den Code komplett übersehen. Das werde ich gleich mal ausprobieren - danke!
    AW: Range mit dynamischer Spalte
    09.04.2021 11:30:25
    Guest
    Das funktioniert super, allerdins werden die vier Zellen nur einmal reinkopiert.
    Es soll aber mehrfach bis zur letzten gefüllten Zelle in Spalte A in Spalte F eingefügt werden
    D.h.
    Termin 1
    Termin 2
    Termin 3
    Termin 4
    Termin 1
    Termin 2
    ....
    AW: Range mit dynamischer Spalte
    09.04.2021 11:53:12
    Werner
    Hallo,
    dann z.B. so:
  • 
    Sub Schaltfläche1_Klicken()
    Dim Such As Range, loAnfang As Long, loEnde As Long
    Application.ScreenUpdating = False
    Set Such = Sheets("A.").Rows(3).Find(what:="Datum", _
    LookIn:=xlValues, lookat:=xlWhole)
    If Not Such Is Nothing Then
    Sheets("N.").Cells(3, Such.Column).Offset(, 1).Resize(, 4).Copy
    With Sheets("Imp")
    loAnfang = .Cells(.Rows.Count, "F").End(xlUp).Offset(1).Row
    loEnde = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Cells(loAnfang, "F").PasteSpecial Paste:=xlPasteValues, Transpose:=True
    .Cells(loAnfang, "F").Resize(4).AutoFill _
    Destination:=.Range(.Cells(loAnfang, "F"), .Cells(loEnde, "F")), Type:=xlFillCopy
    .Columns("F").NumberFormat = "m/d/yyyy"
    End With
    Else
    MsgBox "Es gibt keine Spalte Datum."
    End If
    Set Such = Nothing
    Application.CutCopyMode = False
    End Sub
    

  • Gruß Werner
    Anzeige
    AW: Range mit dynamischer Spalte
    09.04.2021 13:29:01
    Guest
    Danke, das läuft einwandfrei! Vielen vielen Dank!
    Gerne u. Danke für die Rückmeldung. o.w.T.
    09.04.2021 15:05:17
    Werner
    AW: Range mit dynamischer Spalte
    08.04.2021 18:38:43
    x.x
    Danke Daniel!
    Mein Problem ist eher, dass ich nicht weiß, wie ich die Spaltenbuchstaben BD/BG durch die dynamische Spalte ersetzen soll, damit der Code noch funktioniert.
    Hast du einen Tipp
    AW: Range mit dynamischer Spalte
    09.04.2021 10:51:04
    Guest
    Danke.
    Ich hab es nun so gemacht
        Dim Liefertermin1 As Long, Liefertermin2 As Long, Liefertermin3 As Long, Liefertermin4 As  _
    Long
    Liefertermin1 = Sheets("Nfr.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:= _
    xlWhole).Column + 1
    Liefertermin2 = Sheets("Nfr.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:= _
    xlWhole).Column + 2
    Liefertermin3 = Sheets("Nfr.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:= _
    xlWhole).Column + 3
    Liefertermin4 = Sheets("Nfr.").Rows(3).Find(what:="Datum", LookIn:=xlValues, lookat:=xlWhole).Column + 4
    
    Nun möchte ich diese Spalten von Termin 1 bis 4 in Zeile 3 kopieren und (mehrfach) einfügen:
    Sheets("N.").Range(Cells(3, Liefertermin1), Cells(3, Liefertermin4)).Copy
    Sheets("A.").Range("$F$2:F" & Cells(Rows.Count, 1).End(xlUp).Row).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Leider erhalte ich hier einen Fehler: Anwendungs- oder objektorientierter Fehler (1004)
    Hat jemand eine Lösung? LG
    Anzeige
    AW: Range mit dynamischer Spalte
    09.04.2021 10:58:35
    Werner
    Hallo,
    und eine Reaktion für meinen Vorschlag hälst du nicht für nötig?
    Gruß Werner

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige