Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
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

ausführen von zwei Private Sub Funktione

ausführen von zwei Private Sub Funktione
15.04.2022 19:14:39
zwei
hallo liebe VBA gemeine
ich habe mal meine Frage wie kann ich Zwei (Private Sub Worksheet_Change(ByVal Target As Range) Funktionen in einem Cod Fenster (Tabelle 1)ausführen
für gute Ideen bin ich sehr gerne offen
https://www.herber.de/bbs/user/152474.xlsm

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 19:55:58
zwei
Hallo Kay,
teste mal:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
Dim objRange As Range, objCell As Range
If Target.Column = 5 And Target.Row > 1 Then
lngRow = Target.Row
Application.EnableEvents = False
Cells(lngRow, 1).Value = TextBox1.Text
Cells(lngRow, 2).Value = TextBox2.Text
Cells(lngRow, 3).Value = TextBox3.Text
Application.EnableEvents = True
Else
Set objRange = Intersect(Target, Columns(4))
If Not objRange Is Nothing Then
Application.EnableEvents = False
For Each objCell In objRange
objCell.Offset(0, 23) = IIf(IsEmpty(objCell.Value), Empty, Now)
Next
Application.EnableEvents = True
End If
End If
End Sub
Gruß
Nepumuk
Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 20:43:41
zwei
Hallo Nepumuk danke für dein Lösungsansatz, leider funktioniert deine Lösung nur zum Teile.
Spalte "AA" mit der Automatischen Eintrag der Zeit funktioniert Super!!! Leider aber trägt er die angaben die Sich in meinen Drei Text Boxen befinden nicht in die entsprechenden Zeilen ein wenn ich in Spalte "D" eine Eingabe Tätige
ansonsten bin ich dir sehr dankbar für deine Idee die du hattest
Kay Siebke

Option Explicit

Private Sub TextBox1_Change()
End Sub

Private Sub TextBox2_Change()
End Sub

Private Sub TextBox3_Change()
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
Dim objRange As Range, objCell As Range
If Target.Column = 5 And Target.Row > 1 Then
lngRow = Target.Row
Application.EnableEvents = False
Cells(lngRow, 1).Value = TextBox1.Text
Cells(lngRow, 2).Value = TextBox2.Text
Cells(lngRow, 3).Value = TextBox3.Text
Application.EnableEvents = True
Else
Set objRange = Intersect(Target, Columns(4))
If Not objRange Is Nothing Then
Application.EnableEvents = False
For Each objCell In objRange
objCell.Offset(0, 23) = IIf(IsEmpty(objCell.Value), Empty, Now)
Next
Application.EnableEvents = True
End If
End If
End Sub

Anzeige
AW: ausführen von zwei Private Sub Funktione
16.04.2022 02:39:44
zwei
hallo Nepumuk deine VBA funktioniert super
onur hat mich auf etwas aufmerksam gemacht, das mir erst nicht aufgefallen ist, daher dachte ich das deine Version nicht funktioniert
Danke Noch mal für deine Hilfe
Kay Siebke
AW: ausführen von zwei Private Sub Funktione
16.04.2022 10:26:52
zwei
hallo Nepumuk ich würde gerne zu meiner Texbox1 eine kleine Ergänzung einfügen, da ich oft in der Nachtschicht vergesse das aktuelle Datum in die TextBox1 zu schreiben möchte ich es gerne so ändern das mir die TextBox automatisch das aktuelle Datum anzeigt. Ich habe es damit versucht aber es Funktionniert nicht so recht wie ich es gerne hätte
Cells(lngRow, 1).Value = TextBox1.Text = Format(Now, "dd.mm.yyyy")
Anzeige
AW: ausführen von zwei Private Sub Funktione
16.04.2022 10:34:26
zwei
Hallo Kay,
so:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
Dim objRange As Range, objCell As Range
If Target.Column = 5 And Target.Row > 1 Then
lngRow = Target.Row
Application.EnableEvents = False
TextBox1.Text = Format$(Date, "dd.mm.yyyy")
Cells(lngRow, 1).Value = TextBox1.Text
Cells(lngRow, 2).Value = TextBox2.Text
Cells(lngRow, 3).Value = TextBox3.Text
Application.EnableEvents = True
Else
Set objRange = Intersect(Target, Columns(4))
If Not objRange Is Nothing Then
Application.EnableEvents = False
For Each objCell In objRange
objCell.Offset(0, 23) = IIf(IsEmpty(objCell.Value), Empty, Now)
Next
Application.EnableEvents = True
End If
End If
End Sub
Gruß
Nepumuk
Anzeige
AW: ausführen von zwei Private Sub Funktione
16.04.2022 11:21:54
zwei
danke Nepumuk für deine erneute Hilfe, dein Lösung funktioniert prima
(irgendwann werde ich mich mal meine letzte Anpassung für dieses Project angehen, das noch im Anfangsstadium ist und das ich im Tabellenblat1 mal zusammen gestellt habe)
Frage: kann ich dann mal auf sie zu kommen, wenn nicht ist auch OK?
AW: ausführen von zwei Private Sub Funktione
16.04.2022 11:27:21
zwei
Hallo Kay,
stell deine Fragen einfach ins Forum. Dann bekommst du eine Antwort, ob von mir oder jemand anderem.
Gruß
Nepumuk
AW: ausführen von zwei Private Sub Funktione
16.04.2022 11:47:58
zwei
Danke dies war nur Mal ne Frage aber es ist OK 👍
AW: ausführen von zwei Private Sub Funktione
15.04.2022 19:56:31
zwei
die Idee ist, die Bedingungen ,welche du mittels intersect und der if Abfrage stellst unter einen Hut zu bekommen. Schließen sich beide Codeteile in einer bestimmten Logik gegeneinander aus, mußt du dies nur im Code umsetzen.

Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 20:25:17
zwei
eine frage ralf_b in wie fern schließen sich beide Funktionen aus ?
Über eine Erläuterung wurde ich mich sehr freuen um daraus zu lernen
Gruß
Kay Siebke
AW: ausführen von zwei Private Sub Funktione
15.04.2022 21:27:01
zwei
das habe ich so nicht sagen wollen.
eher das, wenn du zwei unabhängige Codes hast, die in ihren Tätigkeitsbereichen funktionieren. Dann können die das auch zusammen in einer Routine. Dazu muß man nur die Wirkungsbereiche voneinander mit Intersect oder if Abfragen trennen.
Diese Arbeit nehme ich dir aber nicht ab. Man sieht schon daran das selbst Nepumuk's Code nicht direkt passt, das hier etwas mehr Aufwand notwendig ist.
Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 21:52:58
zwei
Danke für deine Erklärung Ralf b! Giebt es eine andere Möglichkeit die beiden Funktion zum laufen zu bringen ohne das sie sich gegenseitig ausschließen z.b in dem ich ein zweiten Cod Fenster anlege ?
AW: ausführen von zwei Private Sub Funktione
15.04.2022 22:13:43
zwei
"z.b in dem ich ein zweiten Cod Fenster anlege ?" Scherzkeks !
Es sind vom System bereitgestellte Ereignisprozeduren, die darf es nur EINMAL pro Blatt geben, genauso wie es nie ZWEI Subs mit dem gleichen Namen geben darf.
So geht das:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z, s
z = Target.Row: s = Target.Column
If s = 5 And z >= 2 Then
Cells(z, 1) = Me.TextBox1
Cells(z, 2) = Me.TextBox2
Cells(z, 3) = Me.TextBox3
ElseIf s = 4 And Target.Count = 1 Then
Target.Offset(, 23) = IIf(Len(Target) > 0, Now, "")
End If
End Sub
Hier MIT Datei:
https://www.herber.de/bbs/user/152476.xlsm
Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 22:47:48
zwei
ich meinte indem ich eines der sub befehle in ein Modul schreibe?
Aber danke für dein versuch und deiner guten Erklärung, dann werde ich wohl das ganze begraben wen ich die beiden Funktionen nicht in einem Cod Fenster zum laufen bekomme
AW: ausführen von zwei Private Sub Funktione
15.04.2022 22:50:16
zwei
ERSTENS SIND DAS KEINE FUNKTIONEN UND ZWEITENS HABE ICH DIR GEPOSTET, WIE ES GEHT !
AW: ausführen von zwei Private Sub Funktione
15.04.2022 23:14:04
zwei
Sorry da hab ich mich wohl in meinen Worten wohl nicht gut ausgedrückt was ich meinte!
Auch mit ihrer gut gemeinten Änderungen funktionieren meine Drei Textboxen nicht ,mit meiner Datei die sie angehängt habe.Aber ich danke ihnen trotzdem für alles
Anzeige
AW: ausführen von zwei Private Sub Funktione
15.04.2022 23:30:42
zwei
Ich fasse es nicht.
Du hatest geschrieben:"Leider aber trägt er die angaben die Sich in meinen Drei Text Boxen befinden nicht in die entsprechenden Zeilen ein wenn ich in Spalte "D" eine Eingabe Tätige " - DAS HAT DEIN SUPERCODE ABER AUCH NICHT GETAN !!!
Soll ich DIR mal DEINEN "eigenen" Code erklären:
Erste SUB (nicht Funktion!): Nur wenn Änderung in Spalte E und Zeile ab 2 bis Ende: Kopiere Texbox1 in Spalte A, Texbox2 in Spalte B und Texbox3 in Spalte C (der akt. Zeile).
Zweite SUB: Nur wenn Änderung nur einer Zelle in Spalte B: schreibe Uhrzeit in Spalte AA (der akt. Zeile).
Wie gesagt: SPALTE E !
Anzeige
AW: ausführen von zwei Private Sub Funktione
16.04.2022 02:25:30
zwei
hallo Onur diese teil der Änderung an der der SUP ANWEISUNG ist nicht von mir und ist mir leider nicht aufgefallen als ich zur späten stunde das ganze getestet hatte als Nepumuk sie geschrieben hatte mit dieser Lösung. Aber danke das du mich darauf aufmerksam gemacht hast onur
AW: ausführen von zwei Private Sub Funktione
15.04.2022 23:32:04
zwei
Korrektur:
Zweite SUB: Nur wenn Änderung nur einer Zelle in Spalte D: schreibe Uhrzeit in Spalte AA (der akt. Zeile).
AW: ausführen von zwei Private Sub Funktione
16.04.2022 16:19:05
zwei
Meiner Vorschlag:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 5 And Target.Row > 1 Then Cells(Target.Row, 1).Resize(, 3) = Array(TextBox1, TextBox2, TextBox3)
If Target.Column = 4 And Target.Count = 1 Then Target.Offset(, 23) = IIf(Len(Target) > 0, Now, "")
End Sub

AW: ausführen von zwei Private Sub Funktione
16.04.2022 16:25:21
zwei
Danke snb die Lösung würde schon gefunden, aber danke für dein vorschlag

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige