Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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
Inhaltsverzeichnis

ODBC Verknüpfung

ODBC Verknüpfung
Carola
Hallo zusammen,
ich bitte um Eure Profi-Hilfe für eine für mich unlösbare Aufgabenstellung:
Ich habe von unserer ERP-Software eine Verknüpfüng zu Excel. Aktuelle Daten werden täglich abgeholt.
Nun soll in der Tabelle neben den ODBC Daten noch eine Spalte mit manuellen Einträgen (Texte) sein.
Durch das Aktualisieren verschiebt sich aber der Eintrag nicht mit den ODBC Daten, dadurch geht der korrekte Bezug zum Inhalt natürlich verloren. Probiere nun schon das ganze Wochenende, wer kann mir auf die Sprünge helfen ?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ODBC Verknüpfung
09.07.2012 08:32:28
Detlef
Morgen, Carola.
Um das Problem lösen zu können, werden wir noch ein paar zusätzliche Informationen brauchen.
Frage #1: Auf welchen Wert im Download bezieht sich der Text? Ist diese Information immer gleich und verschiebt sich nur zeilenweise, oder ändert sich die Information selbst auch?
In jedem Fall mußt Du vor dem Download etwas tun. Entweder die Tabelle kopieren und hinterher in einer Schleife abfragen und die Texte passend in die neue Tabelle schreiben, oder vorher die Texte in Variablen wegschreiben und danach passend eintragen.
Detlef
AW: ODBC Verknüpfung
09.07.2012 18:40:23
Carola
Hallo zusammen, hallo Detlef,
hoffe, ich verstehe Deine Frage richtig: der Text ist ganz variabel, pro Zeile unterschiedlich und bezieht sich jeweils auf die Zeile, genauer auf die Auftragsnummer, mit diversen Details. Jede Auftragsnummer gibt es nur 1mal.
Zum zeiten Absatz: Bahnhof ?
Bitte noch um ein paar Stichworte, damit ich gedanklich nicht auf den Holzweg einbiege.
Muss ich sozusagen in einer 2. Tabelle die Auftragsnummer und den Text eintragen, und kann das als hinterher als fixen Wert anhand der Auftragsnummer in die ODBC Tabelle verknüpfen?
Danke im Voraus für die freundliche Hilfe.
Anzeige
AW: ODBC Verknüpfung
09.07.2012 22:48:00
Detlef
Nabend, Carola.
Nein, mit Verknüpfungen kommst Du nicht weiter, zumindest nicht allzu lange. Ohne VBA wird das eher nichts.
Also: Die Auftragsnummer ist eindeutig. Das hilft auf jeden Fall schon mal weiter.
Die Schritte in Prosa:
- Tabelle kopieren
- Neue Daten laden
- Die erste "alte" Auftragsnummer und den dazugehörigen Text aus der Kopie auslesen
- Die erste "alte" Auftragnummer in den neuen -Daten suchen und den Text an die richtige Stelle schreiben
- Die zweite "alte" undsoweiter bis zur n-ten "alten" Auftragsnummer übertragen
- Kopie löschen nach Prüfung
Das geht nicht von Hand, dazu brauchst Du ein VBA-Makro, das diese Schleife (1 bis n) abarbeitet. Ist nicht besonders aufwendig, kann ich aber auch nicht ohne weitere Informationen über den Tabellenaufbau so einfach schreiben. Ich brauche zumindest diese Informationen:
- Blattname alt und neu
- Spalte für die Auftragsnummer
- Spalte für den Zusatztext
- in welcher Zeile beginnt die Arbeit (resp. gibt es Kopfzeilen?)
Ich nehme an, die Daten sind vertraulich und Du kannst die Datei nicht hochladen?
Detlef
Anzeige
AW: ODBC Verknüpfung
11.07.2012 10:51:26
Detlef
Carola,
ich habe mal eine kleine Prozedur geschrieben, die das Problem grundsätzlich löst.
Der gesamte Text von "Sub" an muß in ein VBA-Modul eingetragen werden.
Wie bereits letztens gesagt, muß vor der Aktualisierung der Daten ein Kopie angelegt werden. Wenn die neuen Daten vorhanden sind, kann die Prozedur aus der Kopie lesen und passend zuordnen.
In der Prozedur selbst müssen vorher die richtigen Blattnamen und die entsprechenden Spalten- und Zeilenwerte eingetragen werden, die hatte ich natürlich nicht.
Ich hoffe, jemand bei Euch kommt damit zurecht. Wenn nicht, rufe mich einfach an unter 0151-51 056 400.
Sub TextTransfer()
Dim wksAlt As String
Dim wksNeu As String
Dim colAuftrag
Dim colText
Dim rowStart
colAuftrag = 1            'Spalte mit der Auftragsnummer (Beispiel: erste Spalte)
colText = 4                 'Spalte mit dem zu übertragenden Text (Beispiel: vierte Spalte)
rowStart = 3              'Zeile, in der die erste Auftragnummer steht, ohne Kopfzeilen ( _
Beispiel: dritte Zeile)
wksAlt = "Kopie"            'Name des kopierten Blattes
wksNeu = "ERP-Daten"  'Name des Blattes mit den neuen Daten
With ThisWorkbook.Worksheets(wksAlt)
EndeKopie = .Cells(Rows.Count, 1).End(xlUp).Row
End With
With ThisWorkbook.Worksheets(wksNeu)
EndeNeu = .Cells(Rows.Count, 1).End(xlUp).Row
End With
For Each cll In Range(ThisWorkbook.Worksheets(wksAlt).Cells(rowStart, colAuftrag),  _
ThisWorkbook.Worksheets(wksAlt).Cells(EndeKopie, colAuftrag))
TextOld = ThisWorkbook.Worksheets(wksAlt).Cells(cll.Row, colText)
With Range(ThisWorkbook.Worksheets(wksNeu).Cells(rowStart, colAuftrag), ThisWorkbook. _
Worksheets(wksNeu).Cells(EndeNeu, colAuftrag))
Set c = .Find(cll, LookIn:=xlValues)
If Not c Is Nothing Then
ThisWorkbook.Worksheets(wksNeu).Cells(c.Row, colText).Value = TextOld
End If
End With
Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige