14.05.2020, 10:27 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2020, 10:27 von Pirat2015.)
Hallo schauen,
super es läuft schon.
nun will ich das ich mehrer Positionen in der List box markieren kann und ich möchte in der list box nur die Daten sehen welche zu der eingegeben Bestellung passen. Als letzes ist noch ist, die Listbox soll nur die Positionen zeigen, weil in meiner Tabelle sind es zu viel Zellen. Es währe auch schön wenn das Ziel sich selber öffnen würde, so kann ich nur mit einer tabelle arbeiten und brauche nicht parallel zwei tabellen offen haben.
Achso und ab welche Zeile die Daten in des Ziel gefüllt werden muss das program selber überprüffen, denn die Ziel tabelle wird dauert gefüllt
Zitat:das ich mehrer Positionen in der List box markieren kan
stelle bei den Eigenschaften der Listbox auf Multiselect. Der Code verarbeitet das gleich entsprechend.
Zitat:und ich möchte in der list box nur die Daten sehen welche zu der eingegeben Bestellung passen
im Moment wird die Listbox nur bei Neustart neu gefüllt, danach nur angehängt.
Ein Leeren bekommst Du mit ListBox1.Clear am Anfang des Codes der Combobox.
Zitat:die Listbox soll nur die Positionen zeigen
??? Was für Positionen? Die Liste wird dadurch nicht kürzer …
Zitat:Es währe auch schön wenn das Ziel sich selber öffnen würde, so kann ich nur mit einer tabelle arbeiten und brauche nicht parallel zwei tabellen offen haben.
Den Code zum Öffnen, Speichern und Schließen könntest Du aufzeichnen und dann in die Makros einbinden. Wenn DU das Ziel als Tabellenblatt in der Quelle hättest könntest Du Dir das aber sparen
Zitat:Achso und ab welche Zeile die Daten in des Ziel gefüllt werden muss das program selber überprüffen
macht es jetzt schon
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
14.05.2020, 13:39 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2020, 14:05 von Pirat2015.)
OK vielen Dank
Code:
ChDir "PFAD" Application.ActiveProtectedViewWindow.Edit Windows("Quelle.xlsm").Activate Windows("Ziel.xlsx").Activate Range("H1").Select --> Was Bedeutet das? Windows("Quelle.xlsm").Activate Windows("Ziel.xlsx").Activate Windows("Quelle.xlsm").Activate Windows("Ziel.xlsx").Activate Windows("Quelle.xlsm").Activate Windows("Ziel.xlsx").Activate Windows("Quelle.xlsm").Activate Range("H6").Select Was Bedeutet das? ActiveWorkbook.Save ActiveWorkbook.Save ActiveWorkbook.Save ActiveWindow.SmallScroll Down:=9 End Sub
und was ist das?
PHP-Code:
Dim iCnt1%, iCnt2%
Ich versuche gerade den Code anzupassen aber bei mir funktioniert die combo box nicht
Danke
Code:
Option Explicit
Private Sub ComboBox1_Change() Dim iCnt1%, iCnt2% iCnt1 = 38 'Bestellposition Do While Cells(iCnt1, 38) <> "" If Cells(iCnt1, 38).Value = Val(Me.ComboBox1.Value) Then With Me.ListBox1 .AddItem Cells(iCnt1, 1).Value For iCnt2 = 1 To 65 .List(.ListCount - 1, iCnt2) = Cells(iCnt1, iCnt2 + 1).Value ---> Fehler kommt hier Next End With End If iCnt1 = iCnt1 + 1 Loop End Sub
Private Sub UserForm_Initialize() Dim iCnt% iCnt = 38 Do While Cells(iCnt, 38) <> "" If Cells(iCnt, 38).Value <> Cells(iCnt - 1, 38).Value Then Me.ComboBox1.AddItem Cells(iCnt, 38).Value iCnt = iCnt + 1 Loop End Sub
dann bekomme ich folgenden Fehler
"Eigenschaft List konnte nicht gesetzt werden. Ungültiger Eigenschaftswert
14.05.2020, 15:13 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2020, 15:13 von schauan.)
Hallöchen,
beim Programmierung schön der Reihe nach vorgehen
Also, erst mal zum Öffnen vom Ziel.
Ich bekomme dafür diesen Code aufgezeichnet:
Sub Makro2() ' ' Makro2 Makro '
' Workbooks.Open Filename:="C:\Temp\Ziel.xlsx" Windows("Quelle.xlsm").Activate End Sub
und zum Schließen den
Code:
Sub Makro3() ' ' Makro3 Makro '
' Windows("Ziel.xlsx").Activate ActiveWorkbook.Save ActiveWindow.Close End Sub
Du kannst dann die zwei Zeilen zum Öffnen an den Anfang des Makros vom Button Übertragen nehmen und die 3 Zeilen zum Schließen ans Ende dieses Makros.
Klappt das?
Zu der Frage: Range("H1").Select --> Was Bedeutet das?
Da hilft schon etwas Englischkenntnis. H1 sollte klar sein, das ist eine Zellbezeichnung. Range ist der Bereich. Select ist die Auswahl, Du hast also einen Bereich, hier eine Zelle, gewählt. Dein aufgezeichneter Code zeigt z.B., dass Du zwischen den Dateien öfter hin und her gewechselt bist und 3x gespeichert hast.
Der Fehler könnte z.B. daraus resultieren, dass Du letztendlich zum Füllen der Combo in der Zieldatei warst und nicht in der Quelle.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
der Code sollte gar nicht in der Datei sein... Anbei hab ich einen ausführlich kommentierten Stand. Da sind dann die aufgezeichneten Codezeilen zum Öffnen, Speichern und Schliessen drin. Der Pfad zur Zieldatei müsste angepasst werden.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
vielen Dank, wenn bei meine original Tabelle die Anfangszeile 18 ist und der Gesuchte Wert in Zelle 38 (also AL) und ich in der ListBox nur die Zelle AL 38 und AM 39 angezeigt haben möchte. Brauche ich da drei Integer?
Ich versuche seit 2 stunden anzupassen es funktioniert einfach nicht
so habe ich die ComboBox angepasst:
Code:
Option Explicit
Private Sub ComboBox1_Change() ListBox1.Clear Dim iCnt1%, iCnt2% iCnt1 = 18 Do While Cells(iCnt1, 38) <> "" If Cells(iCnt1, 38).Value = Val(Me.ComboBox1.Value) Then With Me.ListBox1 .AddItem Cells(iCnt1, 38).Value For iCnt2 = 38 To 39 .List(.ListCount - 1, iCnt2) = Cells(iCnt1, iCnt2 + 1).Value Next End With End If iCnt1 = iCnt1 + 1 Loop End Sub
und so die UserForm
Code:
Private Sub UserForm_Initialize() Dim iCnt% iCnt = 38 Do While Cells(iCnt, 38) <> "" If Cells(iCnt, 38).Value <> Cells(iCnt - 1, 38).Value Then Me.ComboBox1.AddItem Cells(iCnt, 38).Value iCnt = iCnt + 1 Loop End Sub