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, 3864 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
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ä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 VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (9)

Frage von ich2110 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...