Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel 2003 SP3 - Makro - fehlerhafte Zusammenführung der Daten von zwei seperaten CSV-Tabellen

Frage Entwicklung VB for Applications

Mitglied: TecAttack

TecAttack (Level 1) - Jetzt verbinden

08.03.2010, aktualisiert 11.03.2010, 3867 Aufrufe, 1 Kommentar

Hallo Zusammen,

Ich arbeite mit einem Informationssystem von Trackwise. Wenn ich bestimmte Infos im Tabellenformat aus diesem System exportiere, dann bekomme ich diese Daten in zwei seperaten CSV-Tabellen. Die Daten beider Tabellen lassen sich anhand einer "PR ID"-Nummer zusammenführen. Diese ist in jeder Zeile zu finden und wenn beide Tabellen eine übereinstimmende Nummer haben werden beide Daten in einer neuen Tabelle in einer Zeile nebeneinander dargestellt. Bei "PR ID"-Nummern die 4-stellig oder kleiner sind funktioniert das Makro einwandfrei, aber sobald es 5-stellig wird werden die Daten sinnfrei untereinanderweg in der neuen Tabelle zusammengeführt. Ich habe im hier unten zusehenden Code versucht eine Einschränkung wie "kleiner gleich 4" oder etwas ähnliches zu finden, war aber ohne Erfolg.

Kann mir jemand sagen wieso es mit den 5-stelligen "PR ID"-Nummer nicht richtig funktioniert? Vielen Dank!!!!!!! Gruß TecAttack


01.
Sub MergeSheets() 
02.
 
03.
    ' opens two workbooks and merges data from the second to be opened into the first one 
04.
 
05.
    Application.ScreenUpdating = False 
06.
 
07.
    Dim Sourcefile As String 'opens sourcefile (where date are merged in) 
08.
    With Application.FileDialog(msoFileDialogOpen) 
09.
        .Title = "file to be merged in" 
10.
        .Filters.Add "csv-file", "*.csv" 
11.
        .Show 
12.
        Sourcefile = .SelectedItems(1) 
13.
    End With 
14.
    On Error Resume Next 
15.
     
16.
    Dim Gridfile As String 'opens gridfile (where date come from) 
17.
    With Application.FileDialog(msoFileDialogOpen) 
18.
        .Title = "file containing the grid fields" 
19.
        .Filters.Add "csv-file", "*.csv" 
20.
        .Show 
21.
        Gridfile = .SelectedItems(1) 
22.
    End With 
23.
    On Error Resume Next 
24.
         
25.
    'getting the filename of the gridfile-dir-string to close it later 
26.
    Dim x As Variant 
27.
    x = Split(Gridfile, "\") 
28.
    Gridfile = x(UBound(x)) 
29.
         
30.
    'file with data to be copied out of being opened 
31.
    Workbooks.Open Filename:=Gridfile 
32.
    Workbooks(Gridfile).Worksheets(1).Activate 
33.
    'range to be copied will be determined 
34.
    Range("A1", Cells(ActiveSheet.UsedRange.Rows.count, ActiveSheet.UsedRange.Columns.count)).Select 
35.
    Selection.Copy 
36.
     
37.
    'file the date to be copied into being opened 
38.
    Workbooks.Open Filename:=Sourcefile 
39.
    Workbooks(Sourcefile).Activate 
40.
    'data where merged into the sourcefile 
41.
    Dim NewPrColumn As Integer 
42.
    NewPrColumn = ActiveSheet.UsedRange.Columns.count + 1 
43.
    Cells(1, NewPrColumn).Select 
44.
    ActiveSheet.Paste 
45.
     
46.
    'now the big one: sort-algorithm 
47.
     
48.
    Dim i As Integer 
49.
    Dim j As Integer 
50.
    Dim sPrID As Integer 
51.
    Dim gPrID As Integer 
52.
      
53.
    For i = 2 To ActiveSheet.UsedRange.Rows.count 
54.
        sPrID = Cells(i, 1).Value 
55.
        gPrID = Cells(i, NewPrColumn).Value 
56.
        If gPrID > sPrID Then 
57.
            If Not sPrID = 0 Then 
58.
                Range(Cells(i, NewPrColumn), Cells(i, ActiveSheet.UsedRange.Columns.count)).Insert 
59.
            End If 
60.
        End If 
61.
        If gPrID < sPrID Then 
62.
            If Not gPrID = 0 Then 
63.
                Range(Cells(i, 1), Cells(i, NewPrColumn - 1)).Insert 
64.
            End If 
65.
        End If 
66.
    Next i 
67.
     
68.
    ' draw lines 
69.
    For i = 2 To ActiveSheet.UsedRange.Rows.count 
70.
        If Not Cells(i, 1).Value = Cells(i + 1, 1).Value Then 
71.
            Rows(i).Borders(xlEdgeBottom).LineStyle = xlContinuous 
72.
        End If 
73.
    Next i 
74.
     
75.
     
76.
    'gridfile-workbook is being closed - all relevant data are in the sourcefile-workbook now 
77.
    Workbooks(Gridfile).Close savechanges:=False 
78.
    Application.ScreenUpdating = False 
79.
     
80.
    ' Überschrift Fett machen, sonstige Grafische Einstellungen 
81.
    Rows(1).Font.Bold = True 
82.
    Rows(1).VerticalAlignment = xlTop 
83.
    Rows(1).Borders(xlEdgeBottom).LineStyle = xlContinuous 
84.
    Columns(NewPrColumn).Borders(xlEdgeLeft).LineStyle = xlContinuous 
85.
    Columns(NewPrColumn).Borders(xlEdgeLeft).Weight = xlThick 
86.
    Dim dummy As String 
87.
    dummy = Cells(1, 1).Value 
88.
    Cells(1, 1).Value = dummy & vbLf 
89.
    Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.count, ActiveSheet.UsedRange.Columns.count)).Select 
90.
    With Selection 
91.
        .Borders(xlEdgeTop).LineStyle = xlContinuous 
92.
        .Borders(xlEdgeTop).Weight = xlThick 
93.
        .Borders(xlEdgeLeft).LineStyle = xlContinuous 
94.
        .Borders(xlEdgeLeft).Weight = xlThick 
95.
        .Borders(xlEdgeRight).LineStyle = xlContinuous 
96.
        .Borders(xlEdgeRight).Weight = xlThick 
97.
    End With 
98.
     
99.
    ' Kopf und Fußzeilen festlegen 
100.
    With ActiveSheet.PageSetup 
101.
        .CenterFooter = "page &P of &N" 
102.
        .CenterHeader = "" & Überschrift 
103.
        .RightHeader = "&D" 
104.
        .PrintTitleRows = "$1:$1" 
105.
        .Orientation = xlLandscape 
106.
        .CenterHorizontally = True 
107.
        .Zoom = False 
108.
        .LeftMargin = Application.InchesToPoints(0.196850393700787) 
109.
        .RightMargin = Application.InchesToPoints(0.196850393700787) 
110.
        .FitToPagesWide = 1 
111.
        .FitToPagesTall = 10000 
112.
    End With 
113.
     
114.
End Sub
Mitglied: TecAttack
11.03.2010 um 08:04 Uhr
Hi,

Das Problem ist gelöst: in Zeilen 48-51 "Integer" durch "Long" ersetzen.

Gruß
TecAttack
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

VB for Applications
Excel Makro zum Suchen von Spalten und exportieren in CSV (2)

Frage von Raptox zum Thema VB for Applications ...

Microsoft Office
gelöst Daten (Tabelle) aus E-Mail nach Excel übertragen (6)

Frage von kaiuwe28 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Makro zum Sortieren von Spalten an größeres Dokument Anpassen (2)

Frage von Rolfor zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (17)

Frage von Driphex zum Thema Exchange Server ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...