Daten Übertragung mit Dialogfenster und Abfrage
#41
Hallo Andre,

jetzt habe ich verstanden wo der Fehler war.
Ich habe jetzt eine neu Tabelle erstellt und den Code teilweise angepasst.

Kannst du mir jetzt zeigen wie ich in der listbox die Gelb markierten Zellen sehe.
Bitte bedenke, das bei 62 und 63 entweder oder sein soll.

Dann möchte ich auch die Daten welche in der Listbox stehen in die Ziel Tabelle übertragen und zwar wie folgt:

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



Letzes währe noch das die Combox keine gleich Bestellungen zeigt

PS: die viele Zellen in meine Original quelle Tabelle sind teilweise zugeklappt, wenn das ein Problem ist soll das Makro die Zelle automatisch aufklappen und wieder nach der Übertragung in die Ursprungslage bringen.

Vielen Dank


Angehängte Dateien
.xlsm   Quelle_NEW.xlsm (Größe: 35,07 KB / Downloads: 3)
Top
#42
Hallo,

(25.05.2020, 10:18)Pirat2015 schrieb: Letzes währe noch das die Combox keine gleich Bestellungen zeigt

versuche es mal so
Code:
Private Sub UserForm_Initialize()
'Variablendeklarationen - Integer (%) 'Wieso Interger? Eine Tabelle hat doch mehr als 32.767 Zeilen!
Dim iCnt%
Dim objDic
'Zaehler auf 4 setzen
iCnt = 18
Set objDic = CreateObject("scripting.dictionary")
'Schleife solange bis in Spalte 4 eine Zelle ohne Inhalt kommt
Do While Cells(iCnt, 38) <> ""
  'Wenn der Zellinhalt unterschiedlich zum vorherigen Eintrag ist, dann in Combo uebernehmen
  If Not objDic.exists(Cells(iCnt, 38).Value) Then objDic(Cells(iCnt, 38).Value) = objDic(Cells(iCnt, 38).Value) + 1
  'Schleifenzehler hochsetzen
  iCnt = iCnt + 1
'Ende Schleife solange bis in Spalte 4 eine Zelle ohne Inhalt kommt
Loop
Me.ComboBox1.List = objDic.keys
Set objDic = Nothing
End Sub

Das andere habe ich nicht verstanden.
Gruß Stefan
Win 10 / Office 2016
Top
#43
Hallo Steffl,

danke, das läuft jetzt.

Zitat:Das andere habe ich nicht verstanden.

Zurzeit sehe ich in der Listbox nur 7 Daten und zwar von A bis G,
ich möchte aber in der ListBox 14 Daten sehen und zwar nicht von A bis G sondern quer durcheinander, dann möchte ich das diese Daten auch in die Ziel Tabelle importiert werden und zwar so wie ich hier geschrieben habe

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


Angehängte Dateien Thumbnail(s)
   
Top
#44
Hallo,

für mich war deine Erklärung schon verwirrend, Was meint er mit Q14, Q22, Q24 usw. Sind damit Zellen gemeint? Erst nach mehrmaligen Lesen und den Code vergleichen, bin ich jetzt der Meinung, Du meintest damit Spalten. Wenn ja, versuche es mal so


Angehängte Dateien
.xlsm   Quelle_NEW (Automatisch gespeichert).xlsm (Größe: 34,97 KB / Downloads: 3)
Gruß Stefan
Win 10 / Office 2016
Top
#45
Hallo Steffl,


Zitat:für mich war deine Erklärung schon verwirrend, Was meint er mit Q14, Q22, Q24 usw. Sind damit Zellen gemeint? 


Damit sind die Zellen in der Quelle Tabelle gemeint, 
Quelle Tabelle Zelle 14 oder N  --> Ziel Tabelle Zelle 7 oder G und so weiter
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


Ich bekomme hier zwei Fehler

Index außerhalb des gültigen bereich, fehler kommt hier:


Code:
vntSpalten = Array(14, 21, 22, 24, 25, 29, 30, 32, 38, 39, 42, 62, 63, 64)
'Schleife solange bis in Spalte 4 eine Zelle ohne Inhalt kommt
lngC = WorksheetFunction.CountIf(Columns(38), Me.ComboBox1.Value)
ReDim vntArray(0 To lngC - 1, 0 To UBound(vntSpalten)) --> hier kommt der Fehler
Do While Cells(icnt1, 38) <> ""
  'Wenn der Zellinhalt der Auswahl entspricht, dann
  If Cells(icnt1, 38).Value = Val(Me.ComboBox1.Value) Then

 Und zweiter fehler ist

Unzulässige Verwendung des Schlüsselworts Me

Code:
Option Explicit

Private Sub UserForm_Initialize()
Dim icnt1%, icnt2%, arrTemp
'Array fuer ersten Eintrag vorbereiten
ReDim arrTemp(12, 0)
'Schleife ueber alle Zeilen
For icnt1 = 0 To 3
  'Schleife ueber alle Spalten
  For icnt2 = 0 To 12
    'Zeile hinzufuegen
    arrTemp(icnt2, icnt1) = Cells(icnt2 + 1, icnt1 + 1)
  'Ende Schleife ueber alle Spalten
  Next
  'Array fuer naechsten Eintrag vorbereiten
  If icnt1 < 3 Then ReDim Preserve arrTemp(12, icnt1 + 1)
'Ende Schleife ueber alle Zeilen
Next
'Array in Listbox uebernehmen
Me.ListBox1.List = arrTemp --> Wird hier angezeigt
End Sub

Danke dir
Top
#46
Hallo,

zum zweiten Fehler: Sorry, das Makro von André habe ich als Beispiel für mich in deine Datei kopiert, damit ich dein Makro umbauen konnte. Das kannst Du aus dem allgemeinen Modul rauslöschen.

zum ersten Fehler: Welchen Wert hat die Variable lngC zum Zeitpunkt des Fehlers?

und noch was

Zitat:Quelle Tabelle Zelle 14 oder N  --> Ziel Tabelle Zelle 7 oder G und so weiter

ich bezeichne das als Spalte und nicht als Zelle.
Gruß Stefan
Win 10 / Office 2016
Top
#47
Zitat:Welchen Wert hat die Variable lngC zum Zeitpunkt des Fehlers?


IngC=0 und UBound(vntSpalten) = 13
Top
#48
Hallo,

mal ungetestet

Code:
lngC = WorksheetFunction.CountIf(Columns(38), CLng(Me.ComboBox1.Value))
Gruß Stefan
Win 10 / Office 2016
Top
#49
das gleiche, nicht verändert
Top
#50
Hallo,

kann ich nicht nachvollziehen. bei mir klappt es.
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


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