Thema Datum  Von Nutzer Rating
Antwort
Rot Daten auslesen waagrecht oder senkrecht je nach Suchbegriff
15.02.2012 21:02:58 TW
NotSolved
16.02.2012 17:15:25 Holger
NotSolved
19.02.2012 18:28:16 Gast47815
NotSolved
21.02.2012 17:28:21 Holger
NotSolved

Ansicht des Beitrags:
Von:
TW
Datum:
15.02.2012 21:02:58
Views:
2288
Rating: Antwort:
  Ja
Thema:
Daten auslesen waagrecht oder senkrecht je nach Suchbegriff

Schönen guten Abend zusammen,

ich habe etliche Exceldateien, die immer gleich aufgebaut sind (Spalten + Zellen). Diese ganzen Exceldateien sollen zentral in einer anderen Exceldatei zusammengeführt werden. Um mir die händische Abtipparbeit zu sparen, bin ich im weltweiten Web auf ein Makro gestoßen, was mir schon gute Dienste leistet.

Bei diesem Makro gebe ich definierte Suchbegriffe ein, die dann vom Makro in den jeweiligen Exceldateien gesucht und in die neue Datei geschrieben wird. Jedoch funktioniert dies nur in eine Richtung, nämlich waagrecht oder senkrechte Suchrichtung.

Nun habe ich aber das Problem, dass mancher Begriff senkrecht und mancher Begriff waagrecht gesucht werden muss. Also die Suchrichtung abhängig vom Suchbegriff. Nun weiß ich aber nicht, wie ich dies im Makrocode mit eingeben muss, damit das funktioniert. Evtl. wisst ihr hier weiter.

Hier der bestehende Makrocode:

Sub GetData()

Dim oMe As Object
Set oMe = Workbooks("alle.xls").Worksheets("Tabelle1") 'ZielDatei/-Tabelle (also die gerade geöffnete) ;-)
Const sDateiPfad As String = "C:\Documents and Settings\z563164\Desktop\actualwork\test\test1\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende
Const iSbAnzahl = 3 'Nach 3 Begriffen suchen
Dim sSuchbegriff(iSbAnzahl) As String
sSuchbegriff(1) = "Supplier:"
sSuchbegriff(2) = "Name:"
sSuchbegriff(3) = "Parts No.:"

Dim i As Integer
Dim sWbName As String
Dim rFound As Range
Dim vWert As Variant
Dim iZeile As Integer

iZeile = 2
Dim oFS As Object, oDatei As Object
Set oFS = CreateObject("Scripting.FileSystemObject")
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
    sWbName = oDatei.Name
    Workbooks.Open (sDateiPfad & sWbName)
    For i = 1 To iSbAnzahl
        Set rFound = Workbooks(sWbName).Worksheets(1).Range("a1:z100").Find(sSuchbegriff(i), LookIn:=xlValues)
        If Not rFound Is Nothing Then
            vWert = Cells(rFound.Row, rFound.Column + 2).Value
            oMe.Cells(iZeile, i).Value = vWert
        End If
    Next
    Workbooks(sWbName).Saved = True
    Workbooks(sWbName).Close
    iZeile = iZeile + 1
Next
End Sub

Wäre super, wenn mir jemand helfen könnte....

Danke!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten auslesen waagrecht oder senkrecht je nach Suchbegriff
15.02.2012 21:02:58 TW
NotSolved
16.02.2012 17:15:25 Holger
NotSolved
19.02.2012 18:28:16 Gast47815
NotSolved
21.02.2012 17:28:21 Holger
NotSolved