Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
500to504
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
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA - With - Mehrere Operationen
15.10.2004 08:43:29
Cassiopeia
Guten Morgen liebe Excelperten,
nun habe ich gestern schon mit folgendem Code eine super Hilfe bekommen und der Code funktioniert auch einwandfrei:

Private Sub cmdOK_Click()
With Worksheets("Tabelle1")
If IsEmpty(.Cells(19, 7)) Then
.Cells(19, 7).End(xlUp).Offset(1, 0) = CDbl(txtMwst)
Unload Me
Else
MsgBox "Bereich ist voll"
End If
End With
End Sub

Mit dem CommandButton sollen jedoch die Werte von insgesamt 3 Textboxen übertragen werden. Nämlich:
1. "txtMwst" in das Tabellenblatt "Tabelle1" ab Zelle G6:G23 (in G5
befindet sich eine Überschrift, Zellen G6:G23 sind anfänglich leer)
2. "txtSonst" in das Tabellenblatt "Tabelle2" ab Zelle G6:G23 (in G5
befindet sich eine Überschrift, Zellen G6:G23 sind anfänglich leer))
3. "txtBank" in das Tabellenblatt "Tabelle3" ab Zelle H6:H23 (in H5
befindet sich eine Überschrift, Zellen H6:H23 sind anfänglich leer))
Bei jedem Betätigen des CommandButtons sollen die Werte in die nächste Zelle geschrieben werden (z.B. G6, G7, G8 etc.) bis der Bereich voll ist. Es darf nix überschrieben werden. Nun habe ich stundenlang versucht, dies in die Sub "cmdOK" hineinzustricken. Es klappt aber nix. Bekomme immer nur Fehlermeldungen.
Bitte helft mir. Vielen Dank im Voraus!!! Ohne dieses Forum wär ich echt aufgeschmissen.
Gruß,
Cassiopeia

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - With - Mehrere Operationen
15.10.2004 10:34:40
ANdreas
Hallo Cassiopeia,
hier mein Vorschlag, dabei werden in den Bereichen nur die Werte in LEEREN Zellen geschrieben:

Private Sub SchreibeWerte(strSh$, strRng$, dblWert#)
Dim c As Range
For Each c In Worksheets(strSh).Range(strRng)
If IsEmpty(c) Then c.Value = dblWert
Next c
End Sub


Private Sub cmdOk_Click()
On Error Resume Next
SchreibeWerte "Tabelle1", "G6:G23", CDbl(txtMwst)
SchreibeWerte "Tabelle2", "G6:G23", CDbl(txtSonst)
SchreibeWerte "Tabelle3", "H6:H23", CDbl(txtBank)
On Error GoTo 0
End Sub

Hoffe das hilft weiter,
Andreas
Anzeige
AW: VBA - With - Mehrere Operationen
15.10.2004 15:38:40
Cassiopeia
Hallo Andreas,
danke für den Code. Leider hat er mir nicht geholfen. Nun werden beim erstmaligen Betätigen des CommandButtons "CmdOK" alle Zellen z.B. von G6:G23 gefüllt. Ich möchte jedoch, dass jedes mal bei neuer Betätigung des CommandButtons der Wert aus z. B. "txtMwSt" in die nächste darunterliegende Zelle von Tabellenblatt "Tabelle1" geschrieben wird.
Kann mir noch jemand einen Tip geben?
Gruß,
Katja
AW: VBA - With - Mehrere Operationen
17.10.2004 00:33:47
Cassiopeia
Hallo ransi,
ja, vielen dank. so mein ich es. es soll zwar eine zahl ausgeworfen werden. Aber das ist ja schnell geändert von = txtMwSt.Value in CDbl(txtMwSt).
Leider überschreibt Dein Code Zelle "G6" wieder, wenn man den Button 19 mal betätigt hat.
Kann man das irgendwie umgehen? und noch toller wär eine MessageBox mit dem Hinweis "Bereich voll", damit man auch merkt, dass der Wert gar nicht übertragen wird.
Für eine Lösung wär ich sehr dankbar.
Viele Grüße,
Katja
Anzeige
AW: VBA - With - Mehrere Operationen
ransi
Hallo katja
Hab ich garnicht gemerkt das G6 wieder überschrieben wird.
Warum das so ist, weiss ich allerdings nicht.
versuchs mal so, musst allerdings immer die boxen wegklicken wenn ein bereich vorher voll ist.
Option Explicit
Dim bereich1 As Range
Dim bereich2 As Range
Dim bereich3 As Range

Private Sub CommandButton1_Click()
Schreib_werte1
Schreib_werte2
Schreib_werte3
End Sub

Public Sub Schreib_werte1()
Set bereich1 = Worksheets("Tabelle1").Cells(Worksheets("Tabelle1").Range("G23").End(xlUp).Row + 1, 7)
If bereich1 "" Then
MsgBox "Bereich 1 ist voll"
Exit Sub
End If
bereich1.Value = txtMwst.Value
End Sub
Public Sub Schreib_werte2()
Set bereich2 = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Range("G23").End(xlUp).Row + 1, 7)
If bereich2 "" Then
MsgBox "Bereich 2 ist voll"
Exit Sub
End If
bereich2.Value = txtSonst.Value
End Sub
Public Sub Schreib_werte3()
Set bereich3 = Worksheets("Tabelle3").Cells(Worksheets("Tabelle3").Range("h23").End(xlUp).Row + 1, 8)
If bereich3 "" Then
MsgBox "Bereich 3 ist voll"
Exit Sub
End If
bereich3.Value = txtBank.Value
End Sub
ransi
Anzeige
AW: VBA - With - Mehrere Operationen
17.10.2004 18:34:26
Cassiopeia
Hallo ransi,
vielen, vielen Dank. Ja genau, das war die Lösung!!!!
Super, dass Du Dir die Mühe gemacht hast. Du hast mir sehr geholfen.
Viele Grüße
Katja
freut mich.. o.T.
ransi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige