Collapse column

Autor Thema: Makro mit bestimmter Reihenfolge  (Gelesen 1440 mal)

Offline lklk

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Makro mit bestimmter Reihenfolge
« am: Juni 30, 2016, 09:11:04 Vormittag »
Guten Morgen,

ich habe ein Makros geschrieben, um bestimmte Messergebnisse auszuwerten. Allerdings habe ich während des Einsatzes festgestellt, dass es Probleme gibt, sobald die einzulesende Datei eine Zeile zu wenig hat.
Zur Veranschauung einer Messwertangabe:

In den Zeilen (1) steht, was gemessen wurde: z.B. Außendurchmesser
In der Spalte (A) steht das dazugehörige Ergebnis: z.B 0,5

Mein Makros nimmt jetzt diese Werte und kopiert sie. Sobald jetzt aber im einzulesenden Dokument eine Zeile anders ist/fehlt, dann rückt mir das Makros alle Ergebnisse eine Spalte nach links im Excel file.

Hier ein Ausschnitt meines Codes:

Sub Merge_CMM_Files(Source_Folder, SuchString, TableName As String)


    Dim objFileSearch As clsFileSearch
    Dim lngIndex As Long
    Dim lngcount As Long
    Dim dataSets As Variant
   
   
   
       
    Set objFileSearch = New clsFileSearch
    With objFileSearch
        .CaseSenstiv = True
        .Extension = "*.xls"
        .FolderPath = Source_Folder
        .SearchLike = SuchString
        .SubFolders = True
   
       

                If .Execute(Sort_by_name, Sort_Order_Ascending) > 0 Then  'Gefunden!
                   
                    'Anzeige wie viele Datein gefunden wurden
                    If MsgBox("Es wurden " & .FileCount & " Dateien gefunden. Wollen sie diese Dateien mergen?", vbYesNo, "Mehrfach-Fund   = vbYes Then
                        dataSets = .FileCount
                        Application.EnableEvents = False
                        Sheets.Add
                        Application.EnableEvents = True
                        Sheets.Item(1).Name = TableName
                       
                       
                       'Merkmalsbeschreibungen aus erster Datei laden
                        Application.EnableEvents = False    'Startmakros in den Datendateien blockieren
                        Workbooks.Open Filename:=.Files(1).strPath
                        Application.EnableEvents = True     'Makros aktivieren
                                 
                       

                        ActiveWindow.Close Savechanges:=False
                       
                       
                        For lngcount = 1 To .FileCount 'routine für datei öffnen, daten kopieren, datei schliessen.
                       
                       
                                ' Einzelne Datei öffnen
                                Application.EnableEvents = False    'Startmakros in den Datendateien blockieren
                               
                                Workbooks.Open Filename:=.Files(lngcount).strPath
                                Application.EnableEvents = True     'Makros aktivieren
                               
                                'Kopfdaten kopieren
                                'Measurementplan
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B4").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 1).Select
                                ActiveSheet.Paste
                               
                                'Operator
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B10").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 2).Select
                                ActiveSheet.Paste
                               
                                'Date
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("D4").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 3).Select
                                ActiveSheet.Paste
                               
                               
                                'Time
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("D7").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 4).Select
                                ActiveSheet.Paste
                               
                                'Order
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("F4").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 5).Select
                                ActiveSheet.Paste
                               
                                'Part No
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("F7").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 6).Select
                                ActiveSheet.Paste
                               
                                'Ebh_Z_PF BezB
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("A14").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 7).Select
                                ActiveSheet.Paste
                               
                                'F3 Ø 242j6 BezC
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("A15").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 8).Select
                                ActiveSheet.Paste
                               
                                'Rdht_Z_ø242j6_BezC
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("A16").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 9).Select
                                ActiveSheet.Paste
                               
                                'Rdlf_ø242j6_BezC zu A
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("A17").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(1, 10).Select
                                ActiveSheet.Paste
                               
                               


                                 
                                 
                                'Measurement Plan kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B5").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 1).Select
                                ActiveSheet.Paste
                               
                                'Operator kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B11").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 2).Select
                                ActiveSheet.Paste
                               
                                'Date kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("D5").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 3).Select
                                ActiveSheet.Paste
                               
                               
                               
                               
                                'Time kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("D8").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 4).Select
                                ActiveSheet.Paste
                               
                                'Order kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("F5").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 5).Select
                                ActiveSheet.Paste
                               
                                'Part No. kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("F8").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 6).Select
                                ActiveSheet.Paste
                               
                                'Ebh_Z_PF BezB kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B14").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 7).Select
                                ActiveSheet.Paste
                               
                                'F3 Ø 242j6 BezC
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B15").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 8).Select
                                ActiveSheet.Paste
                               
                                'Rdht_Z_ø242j6_BezC kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B16").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 9).Select
                                ActiveSheet.Paste
                               
                                'Rdlf_ø242j6_BezC zu A kopieren
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                Range("B17").Select
                                Application.CutCopyMode = False
                                Selection.Copy
                                Windows("Merge_CMM.xls").Activate
                                Cells(2 + lngcount, 10).Select
                                ActiveSheet.Paste
                               
                                                               
                                'Datei Schliessen
                                Windows(Dir(.Files(lngcount).strPath, vbDirectory)).Activate
                                ActiveWindow.Close Savechanges:=False
                               
                           
                        Next lngcount
                 
                   
                    End If
             
                 
                End If

           
End With
Set objFileSearch = Nothing
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub



Ich hoffe mir kann jemanden weiter helfen.
Grüße
Lena

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Makro mit bestimmter Reihenfolge
« Antwort #1 am: Juli 02, 2016, 09:36:32 Vormittag »
Hallo,

in dem Code wird die Klasse clsFileSearch verwendet, die nicht jeder haben dürfte (auch wenn ich mir vorstellen kann, von wem die kommt).
Somit kann der Code nicht getestet werden und das Antworten wird schwierig. Insofern empfehle ich Dir, hier eine Beispieldatei zur Verfügung
zu stellen + eine Einlese/Auslesedatei.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.