Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code

VBA Code
02.10.2015 19:32:31
Armbruster
Hallo Leute,
ich nutze Excel für ein privates Haushaltbuch. Bei der Optimierung desselbigen, hat sich für mich ein großes Problem herauskristallisiert.
Ich hätte gerne, dass der unten aufgeführte Code nur in einem bestimmten Bereich angewandt wird. Der Bereich geht von A2:E44.
Private Sub cmdEingabe_Click()
'Übernimmt die eingetragenen Werte und schließt das Formular
Dim intErsteLeereZeile As Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = Me.DTPicker1.Value
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.cboGegenstand.Value
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.txtAusgabe.Value
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtEinzahlung.Value
Unload frmHaushaltskasse
Über mögliche Lösungen wäre ich euch sehr dankbar.
MFG Felix

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code
02.10.2015 19:35:35
Hajo_Zi
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
If intErsteLeereZeile > 1 and intErsteLeereZeile

AW: VBA Code
02.10.2015 19:54:44
Armbruster
Hallo Hajo_Zi,
danke für die schnelle Rückmeldung.
habe es jetzt so geschrieben. Problem ist nur, dass er jetzt gar nichts in den Bereich einträgt.
Private Sub cmdEingabe_Click()
'Übernimmt die eingetragenen Werte und schließt das Formular
Dim intErsteLeereZeile As Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
If intErsteLeereZeile > 2 And intErsteLeereZeile 

Anzeige
AW: VBA Code
02.10.2015 19:58:49
Hajo_Zi
dann ist intErsteLeereZeile nicht in dem Bereich.
Gruß Hajo

AW: VBA Code
02.10.2015 20:09:51
Werner
Hallo,
zwei Möglichkeiten: Deine IntErsteLeereZeile ist kleiner als 3 oder sie ist größer als 44
In deiner If-Anweisung sagst du ja, wenn die erste leere Zeile größer als 2 ist und kleiner oder gleich 44 dann führe den folgenden Code aus.
Füge mal nach der Codezeilen IntErsteLeereZeile = .....
folgendes ein
Msgbox IntErsteLeereZeile
und lass den Code laufen, dann gibt er die die erste leere Zeile aus.
Gruß Werner

Anzeige
AW: VBA Code
02.10.2015 20:21:34
Armbruster
Hallo Werner,
vielen Dank.
also ich habe das so gemacht wie du es beschrieben hast. Und ich hatte den Fehler, dass ich um eine Zeile falsch lag.
Mein Ziel ist es jedoch, den bereich unter >44 für andere Eintragungen zu nutzen und nur den bereich mfg

AW: VBA Code
02.10.2015 20:34:47
Hajo_Zi

was ist unter>44

Ich erstelle die Lösung für das was im Beitrag dargestellt wurde. Wird diese Darstellung geändert, überlasse ich anderen die Lösung, da ich schon eine Lösung erstellt hatte und dafür Zeit investiert habe. Ich arbeite nicht für den Papierkorb.

Anzeige
AW: VBA Code
02.10.2015 20:50:01
Armbruster
@Hajo_Zi
ich kennen mich nicht so gut aus. Mein Ziel ist es in dem Bereich A2 bis E44 Eintragungen mit dem Code vorzunehmen. In den Bereich der ab A45:A999 will ich für Eintragungen nutzen die nicht mit Hilfe des codes eingetragen werden.
Ich weiß nicht ob das möglich ist, und schon garnicht wie es funktionieren könnte.

AW: VBA Code
02.10.2015 21:31:35
Werner
Hallo,
wo ist jetzt das Problem? Hast du das eigentlich ausprobiert? Genau das machen doch die Codezeilen di du von HaJo hast.
Es werden nur dann deine Daten übertragen wenn die freie Zeile zwischen 2 und 44 ist. Ist sie kleiner oder größer dann hält nicht.
Gruß Werner

Anzeige
AW: VBA Code
02.10.2015 21:54:05
Armbruster
Ja ich habe das ausprobiert und es ist auch gut aber nicht genau das was ich wollte.
Wenn ich in die Zeile A45 manuell etwas schreibe werden alle anderen Zeilen die darüber liegen und leer sind nicht genutzt, weil er ja dann A46 als nächste freie zeile ausliest, diese aber außerhalb des Bereiche ist(der Bereich ist gewollt) und somit keine Eintragung vorgenommen wird . Sprich eine Eintragung außerhalb des festgelegten Bereiches beeinflusst den Code so dass nichts mehr eingetragen wird. Ich hätte aber gerne, dass innerhalb von dem festgelegten Bereich die EIntragungen vorgenommen werden unabhängig davon was außerhalb des Bereiches an Eintragungen vorhanden ist.
Also er soll nur in dem Bereich die erste freie Zeile ermitteln, egal ob außerhalb des Bereiches etwas steht und dort dann die eintragung vornehmen. Das klappt nicht, folglich liegt da mein Problem

Anzeige
AW: VBA Code
03.10.2015 07:24:07
Werner
Hallo,
dann Versuch mal anstatt
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
die erste freie Zeile so zu ermitteln.
intErsteLeereZeile = ActiveSheet.Range("B44").End(xlUp).Row + 1
Kann es aber gerade nicht testen.
Gruß Werner

AW: VBA Code
03.10.2015 13:18:28
Gerd
Hallo Felix,
entgegen deiner Beschreibung füllt dein Code-Ansatz den Zeilenbereich B:E.
Sub test3()
With ActiveSheet.Cells(44, 2)
If Not IsEmpty(.Cells) Then
MsgBox "Der Bereich ist vollständig gefüllt!"
Else
.End(xlUp).Offset(1, 0).Resize(1, 4) = _
Array(Me.DTPicker1.Value, Me.cboGegenstand.Value, _
Me.txtAusgabe.Value, Me.txtEinzahlung.Value)
End If
End With
End Sub
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige