Über Userform VBA-Code ändern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox
Bild

Betrifft: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 31.07.2015 12:39:07

Hallo zusammen,
ich würde gerne über eine UserForm einen VBA Code ändern.
Mein Code, der geändert werden soll, sieht so aus:
letzteZeile = Cells(Rows.Count, 14).End(xlUp).Row
With Range("Q2:Q" & letzteZeile)
.FormulaLocal = "=Wenn(N2="""";"""";R2-SVERWEIS(N2;{0.2;8.3;16.4;24.5;32.6;40.7};2;1))" ' Produktionszeit: 0-8 std = +2 Tage, 8-16 std = +3 Tage, 16-24 std = +4 Tage, 24-32 std = +5 Tage, 32-40 std = +6 Tage, mehr als 40 std = +7 Tage ***
End With
Ich würde gerne die Fett markierten Zahlen über eine UserForm ändern können.
Ich habe entsprechend TextBox1-6.
Vielen Dank für eure Hilfe.

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Rudi Maintaire
Geschrieben am: 31.07.2015 12:45:03
Hallo,
willst du wirklich den Code ändern oder nur die Zahlen variabel halten?
Gruß
Rudi

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 31.07.2015 12:48:35
Hallo Rudi,
ich möchte die Zahlen variabel halten, d.h. wenn nötig über die UF_Änderung (TextBox1-6) die Zahlen ändern können. Wichtig ist, dass die geänderten Zahlen gespeichert werden, d.h. wenn ich die Liste speichere sollen die Zahlen der letzten Änderung genommen werden - bis ich die Zahlen wieder ändere.
Ich hoffe es ist verständlich.
Danke

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: ransi
Geschrieben am: 31.07.2015 12:51:47
Hallo,
Du musst dir den String für die Formel wieder zusammenfrickeln.
Schau es dir mal an:

With UserForm1
    Range("Q2:Q" & letzteZeile).FormulaLocal = "=Wenn(N2="""";"""";R2-SVERWEIS(N2;{0." & .TextBox1.Value & ";8." & .TextBox2.Value & ";16." & .TextBox3.Value & ";24." & .TextBox4.Value & ";32." & .TextBox5.Value & ";40." & .TextBox6.Value & "};2;1))"
End With

ransi

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 31.07.2015 13:38:21
Hi
wenn die letzte Eingabe in die Textbox beim Schließen der Datei gespeichert werden soll, dann verknüpfe die Textbox mit einer Ausgabezelle auf einem Tabellenblatt.
Trage hierzu die Zelleadresse mit Tabellenblattname in die Eigenschaft "ControlSource" ein.
("Tabelle1!A1")
damit sind Textbox und Zelle mit einander verküpft, dh der aktuelle Textboxinhalt wird immer in die Zelle geschrieben und auch bei einer Zelländerung wird die Textbox automatisch aktualisiert.
Und der Zellinhalt wird natürlich mit gespeichert...
das zusammenfrickeln der Formel würde ich so machen:
dim Fo as string
Fo = "=Wenn(N2="""";"""";R2-SVERWEIS(N2;{0.xx1;8.xx2;16.xx3;24.xx4;32.xx5;40.xx6};2;1))"
Fo = Replace(Fo, "xx1", Textbox1.Text)
Fo = Replace(Fo, "xx2", Textbox2.Text)
...
Fo = Replace(Fo, "xx6", Textbox6.Text)
sind vielleicht ein paar zeilen mehr zu programmieren, ist aber wesentlich überichlicher als die Formel mit & aus Einzelteilen zusammenzufrickeln.
Gruß Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 03.08.2015 08:29:45
Vielen Dank

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 03.08.2015 09:10:43
Hallo Daniel,
ich habe mir die Formel jetzt so zusammengebaut:
(Die Nummern der TB musste ich ändern.)

Dim letzteZeile As Long
Dim Fo As String
letzteZeile = Cells(Rows.Count, 14).End(xlUp).Row
With Range("Q2:Q" & letzteZeile)
'<--- Formel in Q schreiben ***
 Fo = "=Wenn(N2="""";"""";R2-SVERWEIS(N2;{0.xx1;8.xx2;16.xx3;24.xx4;32.xx5;40.xx6};2;1))"
 Fo = Replace(Fo, "xx1", TextBox3.Text)
 Fo = Replace(Fo, "xx2", TextBox4.Text)
 Fo = Replace(Fo, "xx3", TextBox5.Text)
 Fo = Replace(Fo, "xx4", TextBox6.Text)
 Fo = Replace(Fo, "xx5", TextBox7.Text)
 Fo = Replace(Fo, "xx6", TextBox8.Text)
End With
In die TextBoxen trage ich eine Zahlt ein.
Leider wird in Spalte Q das Datum nicht berechnet und eingetragen.
Hier meine Musterdatei
https://www.herber.de/bbs/user/99267.xlsm
Vielen Dank

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 03.08.2015 12:57:45
Hi
mit dem gezeigten Code erstellst du ja erstmal nur den Formeltext in einer Variablen.
du musst natürlich auch den Formeltext dann am Schluss noch in die entsprechende Zelle schreiben!

Range("Q2:Q" & letzteZeile).FormulaLocal = Fo
die WITH-Klammer ist dann auch nicht zwingend notwendig, weil du den zellbereich eh nur 1x verwendest.
Gruß Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 03.08.2015 13:16:32
Danke Daniel.
Jetzt funktioniert es.
Bin dabei noch auf einen anderen Fehler in meinem Projekt gestoßen.
Wenn ich in der UF den erst Button klicke dann funktioniert es nicht.
Vielleicht würdest du das auch nochmal angucken.
Danke

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 04.08.2015 12:52:58
wie soll ich das machen?
ich kann leider weder hellsehen, noch mich auf deinem Rechner einhacken, um mir deine Datei anzuschauen.
Gruß Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 04.08.2015 12:57:45
Oh, da fehlt wohl eine Datei :-)
https://www.herber.de/bbs/user/99319.xlsm
Ich hoffe es klappt jetzt.
Danke nochmal

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 04.08.2015 18:24:47
Hi
ok das ist die Datei?
wo ist jetzt nochmal der Fehler?
was muss ich tun, um diesen Fehler zu bekommen?
Was macht dein Progamm an dieser Stelle und was sollte es deinem Wunsch nach tun?
wie starte ich überhaupt die Userform?
du verweist auf andere Dateien, kann ich den Fehler übernaupt bei mir nachstellen, wenn ich diese Dateien nicht habe?
Versuche einfach deine Fehlerbeschreibung so ausführlich und verständlich zu gestalten, wie du dir meine Antwort wünscht.
Gruß Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 04.08.2015 18:24:51
Hi
ok das ist die Datei?
wo ist jetzt nochmal der Fehler?
was muss ich tun, um diesen Fehler zu bekommen?
Was macht dein Progamm an dieser Stelle und was sollte es deinem Wunsch nach tun?
wie starte ich überhaupt die Userform?
du verweist auf andere Dateien, kann ich den Fehler übernaupt bei mir nachstellen, wenn ich diese Dateien nicht habe?
Versuche einfach deine Fehlerbeschreibung so ausführlich und verständlich zu gestalten, wie du dir meine Antwort wünscht.
Gruß Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 05.08.2015 13:26:26
HAllo Daniel,
danke für deine Mühe und deine Geduld.
Ich füge die Datei mal an. Alle Erklärungen sind jetzt in der Datei.
Das Importieren habe ich abgeschaltet.
Danke

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 05.08.2015 13:27:09
Hier die Datei
https://www.herber.de/bbs/user/99344.xlsm

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Daniel
Geschrieben am: 05.08.2015 23:37:48
Hi
so wie ich dich verstanden habe, funktioniert beim ersten Button das einfügen der Leerzeilen und der Summe nicht.
das funktioniert deshalb nicht, weil du ein Hochkomma vor den Befehl gesetzt hast, mit dem du das entsprechende Makro aufrufst.
damit wird dieser Befehl nicht ausgeführt, weil das Hochkomma den folgenden Text als Kommentar kenntzeichnet.
Kommentare kann man daran erkennen, dass sie grün sind.
wenn du an dieser Stelle das Hochkomma wegnimmst, funktioniert auch das Einfügen der Leerzeilen.
das ist die Programmzeile um die es geht:

'Call ZeileEinfügenMaschine ' Dieses Makro funktioniert nicht !!! ***

da muss das Hochkomma am Anfang weg.
sowas sollte einem aber schon auffallen.
Gruss Daniel

Bild

Betrifft: AW: Über Userform VBA-Code ändern
von: Christian
Geschrieben am: 06.08.2015 07:40:59
Hallo Daniel,
das Hochkomma habe ich für dich gesetzt. Dachte das du dann einen besseren Überblick bekommst.
Beim ersten Button klappt es ja mit dem sortieren und filtern. Das Einfügen uns das Zusammenrechnen in Spalte 17 funktioniert nicht richtig. Die Summe der Maschinen beinhaltet auch Werte aus ausgeblendeten Zellen. Das darf natürlich nicht sein.
Beim zweiten Button funktioniert eigentlich alles. Nur beim letzten Block wird keine Summe gebildet.
Es wäre sehr nett, wenn du nochmal gucken würdest.
Danke

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Über Userform VBA-Code ändern "