Range mit dynamischer Spalte

Betrifft: Range mit dynamischer Spalte
von: x.x
Geschrieben am: 08.04.2021 17:38:23
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

Betrifft: AW: Range mit dynamischer Spalte
von: Daniel
Geschrieben am: 08.04.2021 18:31:05
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

Betrifft: AW: Range mit dynamischer Spalte
von: x.x
Geschrieben am: 08.04.2021 18:34:24
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

Betrifft: AW: Range mit dynamischer Spalte
von: Werner
Geschrieben am: 08.04.2021 18:40:57
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

Betrifft: AW: Range mit dynamischer Spalte
von: Guest
Geschrieben am: 09.04.2021 11:09:09
Hallo Werner,
tut mir sehr leid - ich habe den Code komplett übersehen. Das werde ich gleich mal ausprobieren - danke!

Betrifft: AW: Range mit dynamischer Spalte
von: Guest
Geschrieben am: 09.04.2021 11:12:38
Hallo Werner,
tut mir sehr leid - ich habe den Code komplett übersehen. Das werde ich gleich mal ausprobieren - danke!

Betrifft: AW: Range mit dynamischer Spalte
von: Guest
Geschrieben am: 09.04.2021 11:30:25
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
....

Betrifft: AW: Range mit dynamischer Spalte
von: Werner
Geschrieben am: 09.04.2021 11:53:12
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

Betrifft: AW: Range mit dynamischer Spalte
von: Guest
Geschrieben am: 09.04.2021 13:29:01
Danke, das läuft einwandfrei! Vielen vielen Dank!

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: Werner
Geschrieben am: 09.04.2021 15:05:17

Betrifft: AW: Range mit dynamischer Spalte
von: x.x
Geschrieben am: 08.04.2021 18:38:43
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

Betrifft: AW: Range mit dynamischer Spalte
von: Guest
Geschrieben am: 09.04.2021 10:51:04
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

Betrifft: AW: Range mit dynamischer Spalte
von: Werner
Geschrieben am: 09.04.2021 10:58:35
Hallo,
und eine Reaktion für meinen Vorschlag hälst du nicht für nötig?
Gruß Werner