Clever-Excel-Forum

Normale Version: Markieren Einfügen VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Forengemeinde.

Wie muss ich den Code ändern, dass er nur die letzte Zeile zwischen A3 und A33 ermittelt und den markierten Bereich da einsetzt?

Mein Code:
Code:
Wert = ActiveCell.Value
   
Worksheets(Wert).Activate
With Sheets(Wert)

lgLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    .Range("A" & lgLetzte).PasteSpecial Paste:=xlPasteValuesAndNumberFormats

End With

Application.CutCopyMode = False

Danke für Eure Hilfe
Hallo,

z.B. so:

Code:
Sub aaa()
  Dim strZ As String
  With ActiveCell
    strZ = .Value
    Range(Cells(.Row, 3), Cells(.Row, 16)).Copy
  End With
  With Worksheets(strZ)
    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
  End With
  Application.CutCopyMode = False
End Sub

Gruß, Uwe
Moin!
Sorry, aber wo hast Du denn diesen Code ausgegraben?
Code:
Union(Cells(rngZelle.Row, 3), Cells(rngZelle.Row, 4), Cells(rngZelle.Row, 5), Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7), Cells(rngZelle.Row, 8), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10), Cells(rngZelle.Row, 11), Cells(rngZelle.Row, 12), Cells(rngZelle.Row, 13), Cells(rngZelle.Row, 14), Cells(rngZelle.Row, 15), Cells(rngZelle.Row, 16))
würde ich wie folgt schreiben.
Entweder
Code:
Range(Cells(rngZelle.Row, 3), Cells(rngZelle.Row, 16))
oder auch

Code:
Cells(rngZelle.Row, 3).Resize(1, 14)

Ist Deine Selection zusammenhängend?
Dann einfach (ohne die Else-Kaskade)
Code:
Selection.Resize(1, 14)

Gruß Ralf
Danke @Kuwer.

Der Code funzt soweit.

Nur wie bekomme ich es hin, dass er nur die letzte Zeile zwischen A3 und A33 ermittelt und die werte einsetzt

Code:
lgLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

Letzte Zeile zwischen A3 und A33 suchen und darunter die Werte einsetzen



    .Range("A" & lgLetzte).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Hallo,

Code:
Sub aaa()
  Dim strZ As String
  With ActiveCell
    strZ = .Value
    Range(Cells(.Row, 3), Cells(.Row, 16)).Copy
  End With
  With Worksheets(strZ)
    .Range("A3:A33").SpecialCells(xlCellTypeBlanks).Cells(1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
  End With
  Application.CutCopyMode = False
End Sub

Gruß, Uwe
Ich möchte einfach nur die letzte zeile mit Wert zwischen A3 und A33 im Tabellenblatt ermitteln

lgLetzte = Cells(.Rows.Count, 1).End(xlUp).Row
Hallo

im Prinzip funktioniert auch dein Code mit Cells(), wenn es nach der Zeile 33 keine Daten mehr gibt.
In deinem Fall empfehle ich die Zelle 33 zu prüfen, ob sie schon befüllt ist?  Dann ggf. Abbruch mit MsgBox.

mfg Gast 123

Code:
lgLetzte = Range("A33").End(xlUp).Row
If Range("A33").Value <> "" Then MsgBox "Alle Zeilen bis 33 sind voll!": Exit Sub
Code:
sub M_snb()
  msgbox sheet1.cells(3,1).end(xldown).address
end sub
Hallo,

habe diese Anforderung auch schon einmal in einer Tabelle gehabt. Ich habe mir dann so beholfen um die lezte benutzte Zeile in einem Bereich zu finden (Tabelle, Zeilen und Spalten bitte anpassen):

Code:
Option Explicit

Sub Test_letzteZelleimBereich1()
Dim nletzte As Integer
    'findet die letzte Zeile im Bereich A3 bis A33 bei Zahlen

    nletzte = Tabelle1.Application.WorksheetFunction.Index(Tabelle1.Range("A3:A33"), _
    Tabelle1.Application.WorksheetFunction.Match(0, Tabelle1.Range("A3:A33"), -1)).Row
   
MsgBox nletzte
End Sub

....oder

Sub Test_letzteZelleimBereich2()
Dim nletzte As Integer
    'findet die letzte Zeile im Bereich B3 bis B33 bei beliebigen Werten (Text und/oder Zahl)

    nletzte = Tabelle1.Application.WorksheetFunction.Index(Tabelle1.Range("B3:B33"), _
    Tabelle1.Application.WorksheetFunction.Match("<>", Tabelle1.Range("B3:B33"), -1)).Row
   
MsgBox nletzte
End Sub

Grüße
Norbert
Vielen Dank an alle, für Eure Vorschläge und Hilfe!