Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte aus anderer Datei einlesen??

Werte aus anderer Datei einlesen?
peter
Hallo zusammen!
Habe mein Problem schon mal hier zur diskussion gebracht, aber irgendwie komme ich nicht weiter, deshalb versuche ich dieses Porblem nochmals darzustellen und hoffe das irgendjemanden etwas dazu einfällt. Also folgendes Problem:
Ich habe eine Datei "Kostenstellen", diese befindet sich im folgenden Verzeichnis:
D:\Eigene Dateien\Kostenstellen.xls
In dieser Datei befindet sich ein Tabellenblatt mit dem Namen "Kostenstellen"
In der Spalte A in diesem Tabellenblatt befinden sich Zahlen von 1000 bis 10000.
In der Spalte B in diesem Tabellenblatt befinden sich die dazugehörigen Namen.
Jetzt habe ich eine weitere Datei "BAB.xls", diese befindet sich im folgenden Verzeichnis:
D:\Eigene Dateien\BAB.XLS
In der Datei "BAB.xls" können sich bis zu 30 Tabellenblätter befinden (variiert). In jedem Tabellenblatt steht in der Zelle B1 ein Wert zwischen 1000 und 10000. Per Makro soll nun die Zelle B1 in jedem Tabellenblatt der Datei BAB.xls mit der Spalte A des Tabellenblattes "Kostenstellen" in der Datei Kostenstellen.xls verglichen werden.
Gibt es eine Übereinstimmung soll der entsprechende Name aus dem Tabellenblatt "Kostenstellen" in die Zelle C1 des entsprechenden Tabellenblattes der Datei "BAB.xls" übernommen werden.
Gar nicht so einfach zu beschreiben. Ich hoffe ihr könnt mir folgen und weiterhelfen. Es wäre wirklich schön wenn dieses mit einem Makro gemacht werden könnte.
Schönen Gruß
ralle

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte aus anderer Datei einlesen?
Kurt
Ich würde das mit SVERWEIS() lösen.
Kurt
AW: Werte aus anderer Datei einlesen?
Ulf
Was nu? Peter oder Ralle?
AW: Werte aus anderer Datei einlesen?
Josef
Hallo Peter!
Kopiere diesen Code in ein allgemeines Modul
der Datei "BAB.xls".

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit

Sub Daten()
'dieser Code gehört in ein allgemeines Modul
'der Tabelle "BAB.xls"
Dim wks As Worksheet
Dim wksDaten As Worksheet
Dim wkbDaten As Workbook
Dim rng As Range
On Error GoTo FEHLER
'
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'
Workbooks.Open "D:\Eigene Dateien\Kostenstellen.xls"
Set wkbDaten = Workbooks("Kostenstellen.xls")
Set wksDaten = wkbDaten.Sheets("Kostenstellen")
'
For Each wks In ThisWorkbook.Sheets
If wks.[B1] <> "" Then
Set rng = wksDaten.Columns("A").Find(What:=wks.[B1], LookIn:=xlValues, _
LookAt:=xlWhole)
If Not rng Is Nothing Then
wks.[C1] = rng.Offset(0, 1)
End If
End If
Next
wkbDaten.Close
'
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Gruß Sepp
Anzeige
Danke Sepp, bist der Größte !!!
peter
Hallo Sepp!
Wir hatten schon Gestern das vergnügen!! Du bist einfach SPITZENKLASSE!!! Dein Makro funktioniert einwandfrei (Excel-Experte). Hab vielen Dank für Deine Hilfe.
Wünsche Dir noch einen schönen Abend
Gruß
peter
PS: Kannst Du mir vielleicht ein paar Tipps geben, mit welcher Literatur man das lernen Kann ? Oder wie hast Du Dir das beigebracht ?
An Sepp
peter
... ich bins nochmal!!
Kann es mir nicht verkneifen Dich zu folgendem Problem zu fragen.
In meiner Datei mit den ca. 30 Tabellenblättern steht auf jedem Tabellenblatt in der Zelle D1 eine email-Adresse. Ist es mit einem Excel-Makro möglich die einzelnen Tabellenblätter an diese email-Adresse zu versenden ?
Vielleicht fällt Dir ja auch dazu was ein!!
Gruß
peter
Anzeige
AW: An Sepp
Josef
Hallo Peter!
Das versenden der einzelnen Tabellenblätter (mit Outlook)
geht mit nachfolgendem Code.
Es kann aber beim versenden zu Problemen kommen, wenn
z.B. Outlook nicht reagiert!
In dem Makto ist deshalb eine Wartezeit eingebaut, die
auf Outlook wartet um Fehler zuvermeiden.

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub BlattKopierenUndVersenden()
'alle Tabellenblätter als Arbeitsmappe
'im Temporären Ordner speichern, als
'Anlage mit Outlook versenden und anschliesend löschen
'Empfängeradresse steht in "D1" der jeweiligen Tabelle
Dim wks As Worksheet
Dim strAddress As String
Dim strPath As String
Dim strName As String
Dim strFile As String
strPath = "C:\Temp\" 'Pfad des Temporären Ordners
Application.ScreenUpdating = False
On Error GoTo FEHLER
For Each wks In ThisWorkbook.Sheets
With wks
strName = wks.Name 'Tabellenname
strFile = strPath & strName & ".xls" 'Dateiname
strAddress = .[D1] 'Empfänger
.Copy
End With
With ActiveWorkbook
.SaveAs strFile
Senden strFile, strAddress 'Datei versenden
.Close
End With
Kill strFile 'Datei löschen
Next
FEHLER:
Application.ScreenUpdating = True
End Sub

Sub Senden(AWS As String, strTo As String)
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = strTo 'Empfänger
.Subject = "Betreffzeile Header" 'Betreff
.attachments.Add AWS 'Anlage(Tabelle)
.Body = "Das ist ein Test." & vbCrLf & "Bitte ignorieren." 'Nachrichtentext
'Hier wird die Mail nochmals angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
Sleep 5000 'warten auf Outlook
End Sub

Zu deiner Frage bezüglich Excel/VBA lernen:
Ich beschäftige mich erst seit etwa eineinhalb Jahren
näher mit Excel.
Alles was ich kann (und es gibt viel was ich noch nicht kann und weis!)
habe ich mit Hilfe dieses und anderer Excel-Foren und durch viel
herumprobieren erlernt.
Es gibt zwar sicher einige gute Bücher zum Thema Excel/VBA,
aber ich recherchiere lieber im Internet.
Das beste ist, so glaube ich, "learning by doing" und "try and error"!
Gruß Sepp
Anzeige
AW: An Sepp
An
Guten Morgen Sepp,
habe das mit dem Email-Versand mal ausprobiert, bekomme aber beim ausführen noch folgende Fehlermeldung:
Fehler beim kompilieren. Nach End Sup, End Funktion oder end Property können nur Kommentare stehen.
Im Makro wird daraufhin folgende Zeile makiert:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Woran kann das liegen?
Gruß
peter
AW: An Sepp
Josef
Hallo Peter!
Ich vermute, das du den Code in das Modul einer
Tabelle kopiert hast!
Du musst den Code aber in ein "Allgemeines Modul"
schreiben!(Einfügen &gt Modul)
Dann klappt's auch!
Gruß Sepp
Anzeige
AW: An Sepp
peter
... habe es jetzt nochmal zu Hause versucht und da klappt es. Im Büro will es zur Zeit noch nicht laufen, kann das auch etwas mit der Temp-Datei zutun haben, kann diese nämlich nicht finden. Oder kann ich einfach einnen neuen Ordner "Temp" anlegen?
Gruß
peter
PS: Oder bin ich völlig auf dem Holzweg ?
AW: An Sepp
Josef
Hallo Peter!
Du kannst natürlich auch einen Ordner anlegen!
Du musst im Makro dann nur den Pfad zum entsprechenden
Ordner anpassen.
Gruß Sepp
Es funktioniert, Danke!! o.T.
23.04.2004 10:29:21
peter
.
AW: Werte aus anderer Datei einlesen?
21.04.2004 22:28:55
Hansueli
Hallo Peter,
Solche Operationen erledige ich mit sverweis, hier ein Beispiel
=SVERWEIS(A7;[Mappe2]Tabelle1!$A$4:$B$8;2;WAHR)
Sverweis steht in deinem Fall in C1, A7 steht für B1 Mappe2 für den Dateinamen $A$4:$B$8 das ist der suchbereich; 2 der gesuchte Wert; Wahr , steht dafür dass der Wert identisch sein muss.
hoffe das hilft
Gruss Hansueli
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige