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!
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
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:
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
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
Top
#6
Hat keiner mehr eine Idee zu meinem Problem? ;-(
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
Top
#8
Alles klar Smile

Thread ist eingerichtet: Hier gehts weiter!
Top


Gehe zu:


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