Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Letzte Leere Zelle Auswählen und Wert eintragen (VBA)
#1
Grüße ins Board!

Ich habe folgendes Problem bei einer Excel Tabelle.
Grundlage ist, dass Werte in 3 Spalten stehen c5:e5 
Diese Werte sollen durch eine Tastenkombination ausgelesen und ans Ende einer Tabelle eingetragen werden.

Bisher habe ich folgendes gebastelt:

Zitat:Sub Kopieren()
'
' Kopieren Makro
'
' Tastenkombination: Strg+e
'
    Range("C5:E5").Select
    Selection.Copy
    If IsEmpty(Tabelle1.Range("C92").Value) = True Then
    Range("C92").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Else
        Range("C93").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        End If
    
End Sub

Soweit so gut, hier habe ich allerdings um erstmal die grundlegenden Funktionen zu testen festgelegte Zellen angegeben.

Ich stelle mir sowas in der Richtung vor:

Zitat:Sub Kopieren()
'
' Kopieren Makro
'
' Tastenkombination: Strg+e
'
Dim i As Long

    Range("C5:E5").Select
    Selection.Copy
    For i = 92 To 200
            If Cells(i, 3) = "" Then
                Cells(i, 3).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
    End If
    Next
End Sub

Hier wird allerdings JEDE Zelle befüllt...es soll nur einmal in die letzte leere Zelle eingetragen werden und dann stoppen....

Hat jemand ne Idee?

Vielen Dank vorab!
Antworten Top
#2
Hallo

das wäre ein Weg
Code:
Sub Kopieren()
'
' Kopieren Makro
'
' Tastenkombination: Strg+e
'
   Dim lngZiel As Long
   lngZiel = Cells(Rows.Count, 3).End(xlUp).Row + 1
   Range("C5:E5").Copy
   Cells(lngZiel, 3).PasteSpecial Paste:=xlPasteValues
End Sub
MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • e2Ki
Antworten Top
#3
Das funktioniert schon ziemlich gut!
Dafür erstmal vielen Dank.
Wenn ich das richtig verstanden habe sucht er aber nach der LETZTEN leeren Zelle oder?
Dadurch kommt es nun zu einem Problem mit meiner Tabelle.
Leider kann ich hier keiner Addins verwenden daher leider nur eine Beschreibung.

Ich habe jeweils Tabellenblöcke nach Wochen Also Montag - Freitag

Zwischen den Blöcken sind 2 Leerzeilen, die ich brauche um weitere Formeln zu nutzen.
Mit deiner Lösung würde er nun auch diese Leerzeilen befüllen - also habe ich mir gedacht fülle ich doch einfach diese Zeilen mit einer 0 und passe es farblich an.
Nun überspringt er aber ALLE Zeilen bis er an den Punkt kommt, an dem NICHTS weiter folgt.

Also:

C91:E91 sind gefüllt mir den Uhrzeiten
C92:E92 leer und warten auf befüllung
bis C95:E95 leer
C96:E96 sind mit einer 0 gefüllt wegen Leerzeile
C97:E97 sind mit einer 0 gefüllt wegen Leerzeile

Das Makro springt nun aber leider nicht zu C92:E92 sondern nach C98:e98 und fügt die Werte dort ein.

Ist etwas wirr geschrieben aber hier auf der Arbeit kann ich wie gesagt leider nichts weiter nutzen.



EDIT:

Wenn wir hier gerade schon dabei sind....mir ist da gerade ne Idee gekommen.
Könnte man eigentlich auch bei dem Eingabeteil ein Datum einfügen welches dann mit den Daten in der Liste abgeglichen wird und man so auf die richtige Zeile kommt? 
Müsste ja in irgendeiner Form dem Sverweis nahekommen....
                                  B5    -      C5       -   D5   -     E5
Also: Eingabedaten: Datum - Kommen - Gehen - Pause 

In den Tabellenblöcken steht in Spalte B das Datum.

Jetzt müsste das Makro das Eingabedatum B5 mit den Daten aus der Tabelle vergleichen und die Daten C5:E5 in die entsprechende Zeile einfügen.
Damit müsste man sich das leerzellen gesuche sparen und es wäre insgesamt wesentlich eleganter.....

Vielleicht hat ja auch hierzu jemand ne Idde  :100:
Antworten Top
#4
Hi

passt es so?
Code:
Sub Kopieren()
'
' Kopieren Makro
'
' Tastenkombination: Strg+e
'
   Dim lngZiel As Long
   lngZiel = Cells(5, 3).End(xlDown).Row + 1
   Range("C5:E5").Copy
   Cells(lngZiel, 3).PasteSpecial Paste:=xlPasteValues
End Sub
MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • e2Ki
Antworten Top
#5
Hi Tom,

mit der 2. Variante fügt er die Werte Fix bei C8 ein Smile 

Hatte meinen oberen Beitrag noch etwas angepasst:

Wenn wir hier gerade schon dabei sind....mir ist da gerade ne Idee gekommen.
Könnte man eigentlich auch bei dem Eingabeteil ein Datum einfügen welches dann mit den Daten in der Liste abgeglichen wird und man so auf die richtige Zeile kommt? 
Müsste ja in irgendeiner Form dem Sverweis nahekommen....
                                  B5    -      C5       -   D5   -     E5
Also: Eingabedaten: Datum - Kommen - Gehen - Pause 

[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]


In den Tabellenblöcken steht in Spalte B das Datum.

Jetzt müsste das Makro das Eingabedatum B5 mit den Daten aus der Tabelle vergleichen und die Daten C5:E5 in die entsprechende Zeile einfügen.
Damit müsste man sich das leerzellen gesuche sparen und es wäre insgesamt wesentlich eleganter.....

Vielleicht hat ja auch hierzu jemand ne Idee  [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]



Vielleicht kann ein Mod ja mal den Threadnamen anpassen - diese Überlegung geht ja in eine etwas andere Richtung nun Smile
Antworten Top
#6
Hat keiner mehr eine Idee zu meinem Problem? ;-(
Antworten Top
#7
Hi,

bei der Suche nach Daten ist Excel zuweilen etwas komisch.
In diesem Fall solltest Du eine Beispieldatei hochladen. Es bringt Dir  wenig wenn Dir jemand einen Code zur Verfügung stellt,
der dann u.U. Fehlermeldungen auswirft.
Da das nun ein neues Thema ist, schlage ich vor, dazu auch ein neues Thema zu erstellen und die Datei dort zur Verfügung zu stellen.

Gruß
Ich
Antworten Top
#8
Alles klar Smile

Thread ist eingerichtet: Hier gehts weiter!
Antworten Top


Gehe zu:


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