Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Markieren Einfügen VBA
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
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
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Andyle
Antworten Top
#8
Code:
sub M_snb()
  msgbox sheet1.cells(3,1).end(xldown).address
end sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
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
Antworten Top
#10
Vielen Dank an alle, für Eure Vorschläge und Hilfe!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste