Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code vereinfachen ( Hallo Andreas)

Code vereinfachen ( Hallo Andreas)
01.06.2004 00:38:19
Gerald
wie ich sehe, bist Du noch wach. Vielleicht kannst Du mir ja helfen.
folgender Code

Private Sub CommandButton1_Click()
Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("b1000"). _
End(xlUp).Offset(1, 0) = ActiveCell.Offset(-1, 0).Value
Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("b1000"). _
End(xlUp).Offset(2, 0) = ActiveCell.Offset(-3, 0).Value
Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("b1000"). _
End(xlUp).Offset(3, 0) = ActiveCell.Offset(-2, 0).Value
End Sub

sollte kürzer gestaltet werden, da kommt nämlich noch mehr dazu.
Sämtliche Versuche über Dim WK as Workbooks und ws as Worksheets sind bei mir leider gescheitert. Fange ja auch gerade erst an :-]
Ach so: wird von einer Datei ausgelesen un in Datei Steuer geschrieben.
Schönen Dank schon mal
Gerald

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen ( Hallo Andreas)
01.06.2004 00:49:25
K.Rola
Hallo,
eine Möglichkeit:

Private Sub CommandButton1_Click()
With Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("b1000")
.End(xlUp).Offset(1, 0) = ActiveCell.Offset(-1, 0).Value
.End(xlUp).Offset(2, 0) = ActiveCell.Offset(-3, 0).Value
.End(xlUp).Offset(3, 0) = ActiveCell.Offset(-2, 0).Value
End With
End Sub

Gruß K.Rola
Danke
01.06.2004 00:54:48
Gerald
Logisch und ich Dussel habe versucht über (nicht lachen) wk.ws.range(" usw... das hinzubekommen.
Danke und gute Nacht
Gerald
oder...
01.06.2004 00:59:20
K.Rola
Hallo,
sehe gerade, geht noch ein bischen kürzer:

Private Sub CommandButton1_Click()
With Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("b1000").End(xlUp)
.Offset(1, 0) = ActiveCell.Offset(-1, 0).Value
.Offset(2, 0) = ActiveCell.Offset(-3, 0).Value
.Offset(3, 0) = ActiveCell.Offset(-2, 0).Value
End With
End Sub

Gruß K.Rola
Anzeige
noch besser
01.06.2004 01:15:08
Gerald
Hallo K.Rola
jetzt stoß ich aber auf ein anderes Problem. Der originale Code geht jetzt so:

Private Sub CommandButton1_Click()
With Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("c1000").End(xlUp)
.Offset(1, 0) = ActiveCell.Offset(-1, -25).Value
.Offset(0, 1) = "Tankstelle"
.Offset(1, 1) = "Benzinkosten"
.Offset(0, 5) = ActiveCell.Offset(-1, 0).Value
End With
Unload Me
End Sub

In der Datei Steuer habe ich aber ( um mir die Eingaben zu vereinfachen ) ein Change Code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 5 Then Cells(Target.Row, 8).Select
If Target.Column = 8 Then Cells(Target.Row + 1, 2).Select ' hier wg. offset 0,5
If Target.Column = 12 Then Cells(Target.Row + 1, 2).Select
End Sub

der mir natürlich eine Fehlermeldung bringt. Gibt es dafür eine Abhilfe?
Gerald
Anzeige
Hallo K.Rola
01.06.2004 01:37:28
Gerald
Nicht, daß Du das "noch besser" in den falschen Hals bekommen hast.? Ich meinte natürlich Deine weitere Vereinfachung :-) :-)
gruß
Gerald
AW: Welcher Fehler tritt denn auf?
01.06.2004 08:47:41
Martin Beck
Hallo Gerald,
syntaktisch ist der Code in Ordnung. Was ist denn der Fehler?
Gruß
Martin Beck
AW: Welcher Fehler tritt denn auf?
01.06.2004 10:11:01
Gerald
Guten Morgen Martin,
Jeder Code für sich stimmt schon und läuft auch einwandfrei. Da aber aus der Datei X in die Datei Steuer "geschrieben" wird, diese jedoch den Worksheet_Change Befehl bekommt, kommt der Laufzeitfehler 1004 in Zeile: If Target.Column = 8 Then Cells(Target.Row + 1, 2).Select. Wenn ich diese Zeile auskommentiere läuft es natürlich :-()
Ich habe leider nicht die geringste Idee wie ich das lösen kann.
Anbei nochmal die "überarbeiteten Codes, vielleicht hast Du ja ein Lösung?

Private Sub CommandButton1_Click()
With Workbooks("Steuer.xls").Worksheets("Ausgaben").Range("c1000").End(xlUp)
.Offset(1, 0) = ActiveCell.Offset(-1, -25).Value
.Offset(1, 1) = "Tankstelle"
.Offset(1, 5) = ActiveCell.Offset(-1, 0).Value
End With
Unload Me
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 5 Then Cells(Target.Row, 8).Select
If Target.Column = 8 Then Cells(Target.Row + 1, 2).Select
If Target.Column = 12 Then Cells(Target.Row + 1, 2).Select
End Sub

Anzeige
Martin ist wohl nicht online?
01.06.2004 10:59:18
Gerald
Guten Morgen. Vielleicht hat ja jemand anderes Zeit? Wäre schön
Gerald
AW: Welcher Fehler tritt denn auf?
01.06.2004 18:39:34
Martin Beck
Hallo Gerald,
so ganz komme ich nicht mit. "Normalerweise" dürfte der Laufzeitfehler nicht kommen. Vermutung: Stelle mal die TakeFocusOnClick-Eigenschaft des CommandButton1 auf FALSE.
Ansonsten bitte genau beschreiben, welcher Code in welcher Datei in welcher Tabelle steht und was sie bewirken sollen. Oder die Datei uploaden.
Gruß
Martin Beck
Datei
01.06.2004 21:00:22
Gerald
Hallo Martin,
schön, daß Du da bist. Leider muss ich jetzt erst mal los und komme erst gegen 23:30 zurück. Ich habe mal die datei upgeloadet. Musste ich allerdings fast neu machen, da - wie der Name es unschwer erkennen läßt - es um meine Steuersachen geht. Ist jetzt alles in einer Datei und hoffentlich selbsterklärend.
https://www.herber.de/bbs/user/7016.xls
Bis nachher - vielleicht?
Gerald
Anzeige
AW: Datei
01.06.2004 22:31:11
Martin Beck
Hallo Gerald,
lösche mal den Code, der dem Tabellenblatt "Ausgaben" zugeordnet ist (Change-Ereignis), dann funktioniert es (zumindest in der Testdatei).
Und in dem Code des CommandButtons würde ich am Ende noch
Unload Me
anfügen, damit die Userform wieder geschlossen wird.
Gruß
Martin Beck
AW: Datei
02.06.2004 01:33:07
Gerald
Hallo Martin
wie Du sicher gesehen hast, ist das eine sehr abgespeckte Datei. Das es funktioniert,wenn der Change Befehl nicht vorhanden ist, weiß ich. Diesen Code nutze ich aber für die Direkteingabe in der Datei. Also brauch ich etwas, was den Fehler abfängt.
Gruß Gerald
Anzeige
noch offen
02.06.2004 01:59:50
Gerald
siehe oben
Häkchen vergessen
02.06.2004 02:36:21
Gerald
siehe oben
geschlossen
02.06.2004 09:20:46
Gerald
Noch ein Versuch
02.06.2004 12:04:59
Martin Beck
Hallo Gerald,
anscheinend muß die Tabelle "Ausgaben" zuerst noch einmal aktiviert werden, bevor Range.select funktioniert. Versuche mal folgenden Code für Tabelle "Ausgaben":

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'If Target.Column = 5 Then Cells(Target.Row, 8).Select
If Target.Column = 8 Then
Worksheets("Ausgaben").Activate
Cells(Target.Row + 1, 2).Select
End If
If Target.Column = 12 Then Cells(Target.Row + 1, 2).Select
End Sub


Gruß
Martin Beck
Hallo Martin
02.06.2004 14:58:52
Gerald
Hallo Martin
Application.EnableEvents = False
Application.EnableEvents = True
war es. Hätte ich eigentlich selber drauf kommen können.
Asche auf mein Haupt und schönen Dank Dir und nochmal an Nepumuk und alle anderen, die hier helfen.
Schönen Tag noch
Gerald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige