Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Gleiche Daten anzeigen + auswählen können
05.11.2005 00:43:29
Schwab
Hallo zusammen,
ich brauche mal euren Rat wie ich mein derzeitiges Problem am besten lösen kann.
Ich importiere Daten aus einer Excel Liste in eine andere.
Hierbei werden alle Daten der einen Excel - Tabelle übernommen.
Beim übernehmen der Daten wird geprüft ob dieser Datensatz vorhanden ist.
Wenn ja, wird dieser doppelte in einer seperaten Tabelle gespeichert.
Über diese Daten dieser seperaten Tabelle, also alle Datensätze, welche schon vorhanden sind, solle nun am Ende noch eine Abfrage an den User kommen, ob er doch den einen oder anderen Datensatz übernehmen will, obwohl er schon vorhanden ist.
Jetzt stellt sich für mich die Frage wie ich das am besten verwirklichen kann.
Wie kann ich die doppelten Datensätze dem User am besten anzeigen lassen?
Und wie kann ich ihn am besten auswählen lassen ob sie dennoch übernommen werden sollen?
Wäre über eure Ratschläge sehr dankbar!
Mfg
M. Schwab

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 09:21:57
Erich
Hallo M(?),
eine Möglichkeit:
Du könntest nach dem Fertigstellen der seperaten Tabelle mit den schon vorhandenen Datensätzen in diese Tabelle eine neue Spalte A einfügen, die Tabelle aktivieren und dein Makro beenden.
Dann kann der User alle Zeilen, die doch übernommen werden sollen, in Spalte A markieren (z. B. mit einem x).
Wenn er damit fertig ist, startet er (vielleicht mit einem Button) ein zweites Makro, das die markierten Zeilen (ohne Spalte A) übernimmt.
Ich lasse den Thread mal offen - für evtl. weitere Vorschläge
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 13:49:15
Schwab
Hört sich eigentlich ganz gut an, vom Prinzip her.
Ich hätte es jedoch auch gerne so, dass ne Userform geöffnet wird, mit dem Inhalt der seperaten Tabelle und dass der User dann in der Uerform nen Hacken ran machen kann, ob er übernehmen will oder nicht.
Hierzu eine Idee wie ich das verwirklichen kann?
Mfg
Manuel Schwab
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 13:56:21
Schwab
Hört sich eigentlich ganz gut an, vom Prinzip her.
Ich hätte es jedoch auch gerne so, dass ne Userform geöffnet wird, mit dem Inhalt der seperaten Tabelle und dass der User dann in der Uerform nen Hacken ran machen kann, ob er übernehmen will oder nicht.
Hierzu eine Idee wie ich das verwirklichen kann?
Mfg
Manuel Schwab
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 17:26:50
Erich
Hallo Manuel,
warum hast du das nicht gleich in deinem ersten Beitrag geschrieben? (Anders gefragt: Warum habe ich mir angesichts der "kaum Excel/VBA-Kenntnisse" Gedanken um eine möglichst elementare Lösung gemacht?).
Mittlerweile habe ich hier im Forum gesehen, dass du dich durchaus schon mit Feinheiten in Sachen "UserForm-Ereignisse" beschäftigt hast. (Zitat: "So mache ich es eigentlich immer, ist easy :)" aus https://www.herber.de/forum/messages/691861.html )
Da dürfte dir die Erstellung einer UserForm mit einer Listbox (mit MultiSelect), die Daten aus den Tabellenzeilen anzeigt, doch kein Problem bereiten, oder?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 17:35:57
Schwab
naja, wie man ne Userform erzeugt und darin ne Listbox erscheinen lässt ist durchaus kein Problem. Trotzdem bin ich ein VBA noob ;)
Für mich stellt sich nur die Frage wie ich in der Listbox erreichen kann, dass du jedem Eintrag eine "Select Option" erscheint. Es können ja immer unterschiedliche Anzahlen von Einträgen sein, daher kann ich ja nicht einfahc eine einheitliche Userform nehmen, sondern die muss sich immer anpassen, verstehst du was ich meine? ;)
Und wie kann ich dann die einzelnen Select Options mit dem jeweiligen Eintrag verlinken, also dass ich nen Befehl hab der sagt, wenn da nen Hacken ist, dann übernimm genau diese Daten...
Ein wenig kenne ich mich aus, okay, aber das meiste ist nur zusammengesucht und selbst ein wenig verfeinert. das hier stellt für mich durchaus ein Problem dar ;)
Über Tipps wäre ich dankbar!
Mfg
Manuel
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 19:33:05
Erich
Hallo Manuel,
willst du wirklich eine UF mit variierender Anzahl von "Select Options"? Müssen es unbedingt Häkchen sein?
Ich kann da nur meinen Vorschlag wiederholen:
Du könnstest eine UF erstellen, nur mit einer Listbox (und natürlich OK- und Cancel-Button). Wenn du in der Listbox MultiSelect einschaltest, kann der User alle Sätze auswählen (=markieren), die er übernehmen will.
Ein Problem könnte darin liegen, alle für die Entscheidung benötigten Infos aus der Tabelle in der Listbox unterzubringen. Angesichts dessen ist vielleicht mein allererster Vorschlag (User markiert die gewünschten Sätze nicht in einer UF, sondern direkt in der Tabelle) doch nicht so schlecht?
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
05.11.2005 23:46:29
Schwab
Hallo Erich,
ich hatte mich bisher noch gar nicht mit dem MultiSelect richtig beschäftigt, daher ist mir nun erst klar geworden, dass deine Idee eigentlich recht super ist und ich gar keine Häckchen brauche!
Das Problem von mir besteht nun jedoch nicht darin, alle Infos aus der Tabelle in die Listbox unterzubekommen. Viel mehr besteht es darin, die ausgewählten Einträge in der Listbox der anderen Tabelle, wo diese also hin sollen, wieder anzufügen!
Hast du hierfür einen Tipp?
Insgesamt werden 6 Spalten in der Listbox angezeigt. Zeilen können eben variieren.
Quelle von der Listbox ist z.B. Tabelle 4. Die markierten Datensätze sollen dann eben von Tabelle 4 in Tabelle 1 übernommen werden.
Besten Dank im Voraus.
Mfg
Manuel
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
06.11.2005 00:17:02
Erich
Hallo Manuel,
was hältst du davon, mal eine Beispielmappe mit deinem bisherigen Ergebnis hochzuladen? Daran ließe sich dann konkret arbeiten. Sonst müsste ich erst eine Umgebung nachbauen, die dann auf die deinige vielleicht nicht passt.
Nur so als Tipp:
Bei einer Listbox mit MultiSelect hat jeder Listeneintrag eine Eigenschaft ("Selected" oder ähnlich). Wenn du alle Listeneinträge in einer Schleife auf diese Eigenschaft überprüfst, kannst du bei jedem "Selected"-Eintrag den entsprechenden Satz kopieren.
Grüße von Erich aus Kamp-Lintfort
AW: Gleiche Daten anzeigen + auswählen können
06.11.2005 02:00:01
Schwab
Hallo Erich,
sehr nett von dir!
Werde ich so bald wie möglich machen.
Doch kämpfe momentan noch mit einem anderen Problem, dass jetzt aufgetreten ist, bevor ich den kompletten Import dann vornehmen kann.
Und zwar will ich die Daten aus der import.xls in die Vokabelmanager.xls übernehmen.
Habe hierzu folgenden Code:
[code]
################################################################

Private Sub cmd_import_Click()
Dim a, b As Integer
If Dir(ThisWorkbook.Path & "\import\import.xls") = "" Then  ' Prüfen ob Datei vorhanden ist
MsgBox "Datei nicht vorhanden!"
Exit Sub
End If
Workbooks.Open Filename:=ThisWorkbook.Path & "\import\import.xls"           ' import.xls öffnen
Workbooks("import.xls").Activate
a = 2
Do While Workbooks("import.xls").Worksheets("Tabelle1").Cells(a, 1) <> ""     ' Durchlauf solange die Zelle nicht leer ist
If Workbooks("import.xls").Worksheets("Tabelle1").Cells(a, 1) = "" Then       ' Wenn die Zelle leer ist dann mache bei Weiter weiter
GoTo Weiter
Else
a = a + 1
End If
Loop
Weiter:
a = a - 1
b = 2
Do While Tabelle1.Cells(b, 1) <> ""     ' Durchlauf solange die Zelle nicht leer ist
If Tabelle1.Cells(b, 1) = "" Then       ' Wenn die Zelle leer ist dann mache bei Import weiter
GoTo Import
Else
b = b + 1
End If
Loop
Import:
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Select
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & b)
' Workbooks("Vokabelmanager.xls").Activate
' Workbooks("import.xls").Close savechanges:=True
End Sub

################################################################
Soweit klappt auch alles ganz gut, bis auf den Kopiervorgang:
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & b)
Hier sagt mir Excel immer, Index außerhalb des gültigen Bereiches.
Kannst du mir sagen warum dies der Fall ist?
Sowohl die Datei import.xls als auch Vokabelmanager.xls ist geöffnet.
Verstehe das echt nicht ganz... Hoffe auf deinen Rat.
Sobald ich dies Problem bewältigt habe, lade ich die Datei mal hoch, dann kannst du es dir mal ansehen und ich erkläre dir das mit den gleichen Daten usw.
Besten Dank schonmal.
Manuel
Anzeige
AW: Gleiche Daten anzeigen + auswählen können
06.11.2005 07:11:23
Erich
Hallo Manuel,
dumme Frage: Gibt es in "Vokabelmanager.xls" ein Blatt mit dem Namen "Tabelle1" ? Wenn nicht, würde das den Fehler erklären. Ansonsten läuft der Code fehlerlos durch.
Wo steht die Prozedur? Ich vermute, in "Vokabelmanager.xls" und dort im Code der Tabelle, in der die Vokabeln gesammelt werden.
Wenn ja, würde das reichen:

Private Sub cmd_import_Click()
Dim a, b As Integer
Dim wbImp As Workbook, wsImpTab1 As Worksheet
' Prüfen ob Datei vorhanden ist
If Dir(ThisWorkbook.Path & "\import\import.xls") = "" Then
MsgBox "Datei nicht vorhanden!"
Exit Sub
End If
' import.xls öffnen
Workbooks.Open Filename:=ThisWorkbook.Path & "\import\import.xls"
Set wbImp = ActiveWorkbook
Set wsImpTab1 = wbImp.Sheets("Tabelle1")
a = wsImpTab1.Cells(1, 1).End(xlDown).Row  ' Suche letzte Zeile vor einer leeren
b = Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Suche Zeile nach der letzten Zelle
wsImpTab1.Range("A2:G" & a).Copy Destination:=Cells(b, 1)   ' Kopieren
' Aufräumen
wbImp.Close ' savechanges:=True - ist unnötig, warum sichern?
Set wbImp = Nothing
Set wsImpTab1 = Nothing
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige