Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: TecAttack

TecAttack (Level 1) - Jetzt verbinden

08.03.2010, aktualisiert 11.03.2010, 3998 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 ..
Ähnliche Inhalte
VB for Applications
Excel Makro in CSV exportieren
gelöst Frage von FunServerVB for Applications4 Kommentare

Hallo, ich habe hier einen VBA Code der einen bestimmten Range wenn die Spalte N7 belegt ist in eine ...

VB for Applications
Excel Makro Export in eine CSV Datei
gelöst Frage von FunServerVB for Applications5 Kommentare

Hallo, ich möchte eine Exceltabelle mittels Makro in einen Pfad mit festem Dateinamen exportieren. Hierzu gibt es schon folgenden ...

Microsoft Office
Excel-Makro
gelöst Frage von yuki13Microsoft Office7 Kommentare

Hallo Zusammen!! :-) Ich bin nicht so fit in Excel Makros und wollte mich hier erkundigen, ob mir jemand ...

Microsoft Office
Excel Makro Hilfe
gelöst Frage von freshman2017Microsoft Office8 Kommentare

Moin Moin! Ich würde gerne mit Excel - Kombinationen für Artikelnummern erstellen. Könnte hierbei bereits heraus finden, dass ein ...

Neue Wissensbeiträge
Rechtliche Fragen
Unitymedia siegt vor dem BGH
Information von transocean vor 18 StundenRechtliche Fragen3 Kommentare

Moin, lt. einem aktuellen Urteil darf UM Mietrouter seiner Kunden weiterhin in Hotspots verwandeln. Nachlesen kann man das hier. ...

Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 1 TagRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 1 TagDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 6 TagenWindows 73 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Heiß diskutierte Inhalte
HTML
Bild hochladen mit html auf die Webseite
gelöst Frage von WorldoftheitHTML63 Kommentare

Will eine Seite entwickeln im Internet aber Das Bild wird nicht angezeigt woran kann das liegen? Wäre für jede ...

Vmware
Terminalserver VM - Videos ruckeln
Frage von easyriderVmware29 Kommentare

Hallo zusammen, wir haben einen (free) ESXi 5.5 auf einem HP DL 380 G8 im Einsatz. Darauf läuft, unter ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid23 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...

Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup23 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...