Registriert seit: 31.05.2016
Version(en): 2010
Hallo zusammen,
Ich habe folgendes Problem: Ich weiß wie man die letzte Zeile in einer Spalte mit Hilfe von VBA ermitteln kann. Jedoch weiß ich nicht, wie man die letzte Zeile, zum Beispiel in Spalte D, ermitteln kann und dann sagen kann, dass er nach links gehen soll in Spalte A, um dort den Inhalt einzufügen. Vielleicht könnt Ihr mir hier weiterhelfen
Ich bin wirklich für jede Hilfe dankbar!!!
Viele Dank & viele Grüße :)
Goleo
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo
da du die letzte Zeile ja schon ermittelt hast könnte es z.B. so aussehen
Range("A" & letzteZeile).Value = "was auch immer"
oder
Cells(letzteZeile, 1).Value = ....
MfG Tom
Registriert seit: 31.05.2016
Version(en): 2010
Hallo Tom,
vielen Dank für Deine Antwort. Klappt dies denn auch wenn Spalte A nicht immer einen Wert enthält? Angenommen der letzte Wert in Spalte D ist in Zeile 10, jedoch befindet sich in Spalte A10 kein Wert. Dann wird das wahrscheinlich etwas komplizierter, oder?
Viele Grüße
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
Sub Inhalt()
Cells(Cells.Rows.Count, 4).End(xlUp).Offset(, -3) = "Inhalt"
End Sub
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo
ich denke du weißt wie man die letzte Zeile ermittelt!?
hier wird die letzte Zeile in D ermittelt und in dieser Zeile in Spalte A kommt der Eintrag
Code:
Sub test()
Dim lngLetzteZeile As Long
lngLetzteZeile = Cells(Rows.Count, 4).End(xlUp).Row
Range("A" & lngLetzteZeile).Value = "hier kommts hin"
End Sub
MfG Tom
Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag 28
• Goleo
Registriert seit: 31.05.2016
Version(en): 2010
Hallo Tom,
jetzt funktioniert es auch bei mir. Hatte die erste Zeile vergessen einzufügen :16: !
Vielen Dank für den Support :28:
Grüße
Registriert seit: 31.05.2016
Version(en): 2010
Eine Frage hätte ich da noch. Habe den Code soweit fertig - funktioniert auch alles so wie es soll, bis auf die Sache mit der Spalte A. Er springt automatisch immer in Zelle A1. Warum ist das so? Eigentlich soll er ja in Spalte D die letzte Zeile ermitteln und dann in Spalte A gehen.
____________________________________
Sub Aufbereitung()
Dim cDir As String
Dim sPath As String
Dim lngLetzteZeile As Long
'Definition des Dateipfads + Excelformat
sPath = "Dateipfad"
cDir = Dir(sPath & "*.xlsx")
lngLetzteZeile = Cells(Rows.Count, 4).End(xlUp).Row
Application.ScreenUpdating = False
Do While cDir <> ""
Workbooks.Open (sPath & cDir)
ActiveWorkbook.Sheets("Sheet1").Select
Range("A2:AD99").Select
Selection.Copy
Windows("Dateiname.xlsm").Activate
Worksheets("Aggregation").Select
Range("A" & lngLetzteZeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(cDir).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close SaveChanges:=False
'nächste Datei lesen
cDir = Dir
Loop
End Sub
____________________________________
Vielen Dank & viele Grüße
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
30.08.2017, 09:47
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2017, 09:47 von lupo1.)
Gemein, wenn man zuerst antwortet, der Frager dann aber so kurzsichtig ist und nur die letzte Antwort zur Kenntnis nimmt.
Ein bitterer Tag! :22:
Ich vermute, Du kommst mit Deinen Arbeitsblättern durcheinander. Debugge mal die erste Zuweisung von lngLetzteZeile. Dann merkst Du, dass Du ganz woanders bist.
Da ich keine Zwischenvariable verwende, passiert das dort nicht.
Ganz schlechter Programmierstil mit .Select!
Folgende(r) 1 Nutzer sagt Danke an lupo1 für diesen Beitrag:1 Nutzer sagt Danke an lupo1 für diesen Beitrag 28
• Goleo
Registriert seit: 31.05.2016
Version(en): 2010
Ups, da habe ich wirklich Deine Nachricht überlesen :39: Das tut mir wirklich leid. Aber Deine Lösung funktioniert jetzt. Bin leider kein ITler o.Ä., sondern bin aktuell dabei mir VBA selbst beizubringen (click & try). Daher meine nächste Frage an Dich: Was würdest Du anstatt "Select" empfehlen?
Vielen Dank & viele Grüße
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
30.08.2017, 10:19
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2017, 10:19 von lupo1.)
Kein .Select!
Blöde Antwort von mir. Du solltest einfach die Objekte direkt bearbeiten mit Eigenschaften und Methoden, statt den Cursor Gassi zu führen.
Sheets("NichtAktivesBlatt").Range("A1").FormulaR1C1 = "=TODAY()+RC[+1]"
Sheets("NichtAktivesBlatt").Range("A1:A10").Filldown z.B. füllt die Formel von A1 in A1:A10 an einer Stelle von selbst aus, wo Du gerade gar nicht bist.
Besser ist hier aber noch folgende Direktzuweisung:
Sheets("NichtAktivesBlatt").Range("A1:A10").FormulaR1C1 = "=TODAY()+RC[+1]"
Deshalb ja auch die R1C1-Schreibweise!
Mein Mini-Code ist dafür doch das beste Beispiel (auch Crazy Tom kommt ja ohne aus, aber er zwischenlagert in eine Variable mit der Folge, dass die gar nicht mitbekommt, dass Du sie plötzlich in einem ganz anderen Blatt verwendest, als wo Du sie erstellt hast).
Folgende(r) 1 Nutzer sagt Danke an lupo1 für diesen Beitrag:1 Nutzer sagt Danke an lupo1 für diesen Beitrag 28
• Goleo