Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten Übertragung mit Dialogfenster und Abfrage
#11
Hallöchen,

vor dem .ListCount fehlt Listbox1
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
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

Vielen Dank
Antworten Top
#13
Hallöchen,

kannst Du bisschen VBA?

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 Smile

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)
Antworten Top
#14
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
Antworten Top
#15
Hallöchen,

beim Programmierung schön der Reihe nach vorgehen Smile

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)
Antworten Top
#16
Hä ich habe nichts aufgezeichnet, das sind deine Cods ich habe nur ein die Nummer angepasst

Also das bedeutet:

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

einfach öffne die Tabelle oder was? Meine Frage zu H6 zielte darauf warum du H1 und H6 verwendet hast? Welche Funktion haben diese
Antworten Top
#17
Hallöchen,

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.


Angehängte Dateien
.xlsm   Quelle.xlsm (Größe: 27,53 KB / Downloads: 5)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#18
Hallo Schauen,

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
Antworten Top
#19
Hallöchen,

erst mal zu den Listeneinträgen. Da muss man zwischen der "Nummer" der Spalte in der Listbox und der vom Blatt unterscheiden.

Hier würdest Du die 39. und 40. Spalte der Listbox füllen Sad

For iCnt2 = 38 To 39
.List(.ListCount - 1, iCnt2) = Cells(iCnt1, iCnt2 + 1).Value
Next

korrekt wäre

For iCnt2 = 1 To 2
.List(.ListCount - 1, iCnt2) = Cells(iCnt1, iCnt2 + 37).Value
Next

Wenn ich das richtig sehe, nutzt Du aber nur 2 Spalten dafür?

Dann würde das so reichen:

Code:
With Me.ListBox1
      .AddItem Cells(iCnt1, 38).Value
      .List(.ListCount - 1, 1) = Cells(iCnt1, 39).Value
    End With
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#20
jetzt habe ich gerade gesehen das nur die Daten aus der ListBox übertragen werden
Kannst du mir Code geben für das:

Die Quell Tabelle besteht aus 65 Zellen also von A bis BM. Meine Ziel Tabelle hat 57 Zellen A bis BE.
Ich möchte wie folgt übertragen:

Q14 --> Zi7
Q21 --> Z18
Q22 --> Z11
Q24 --> Z35
Q25 --> Z13
Q29 --> Z36
Q30 --> Z37
Q32 --> Z38
Q38 --> Z30
Q39 --> Z31
Q42 --> Z29
Q62 --> Z8 (Wenn aber in Q62 im wert nach 7 Zeichen folgendes Kommt "PF80..." kommt dann soll der wert aus Q63 genommen werden)
Q63 --> Z8 siehe Q62
Q64 --> Z19

weiter hin soll in die Z2 eine "9" rein geschrieben werden und in die Z47 das datum an dem die Übertragung erfolgte

vielen Dank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste