online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon DasBerlinerkindl vom 05.05.2022, 13:05 Options

Microsoft Excel 2003 Makro VBA Datei öffnen und damit arbeiten

Hallo zusammen,

habe schon viel Gutes über die Site gehört und hoffe das ihr auch mir weiterhelfen könnt, denn meine VBA Erfahrungen sind gleich null.

Ich möchte ein Makro für eine MS Excel 2003 Datei programmieren, komme aber momentan nicht weiter.
Das Makro soll aus mehreren Teilen bestehen.
Die Excel Datei soll leer sein und wenn ich diese dann öffne, soll sich das Makro automatisch starten und den Dialog "Datei öffnen" anzeigen.
Wenn dann die gewünschte Datei im dialog ausgewählt wurde, soll danach eine benutzerdefinierte Sortierung in 2 Spalten vorgenommen werden. Im Anschluss soll er über einen "Wenn" Befehl ebenfalls 2 andere Spalten vergleichen.
Als letztes würde ich gern ein paar überflüssige Spalten löschen, so das am Ende eine fertige, komprimierte Excel Tabelle entsteht.
Ist so etwas möglich?
Ihr würdet mir super, super, super viel helfen. Habe keine Ahnung wie ich das anstellen soll, habe schon etwas probiert, bei mir öffnet es zwar den Dialog zum "Datei öffnen", aber die Datei an sich öffnet sich nicht.

Wäre echt super klasse wenn mir jmd helfen könnte :)!

Vielen Dank schon mal!

Hendrik


Antwort schreiben

Antwort 1 von Saarbauer vom 05.05.2022, 13:42 Options

hallo,

hast du es mal mit makro aufzeichnen versucht?

Gruß

Helmut

Antwort 2 von DasBerlinerkindl vom 05.05.2022, 13:53 Options

Das mit dem aufzeichnen geht leider nicht, weil ich dem ja da nicht klar machen kann, dass ich einen bestimmte Datei am Anfang öffnen möchte und sowas.
Das Makro soll ja sprich nicht an eine Datei gebunden sein, sondern durch den dialog" Datei öffnen" soll eine x-beliebige Datei eingebunden werden können.

Antwort 3 von Saarbauer vom 05.05.2022, 16:34 Options

Hallo,

so müsste dein Makro etwa aussehen


Sub Workbook_Open()
    Datei = InputBox("Welche Datei soll geöffnet werden?", , Pnr)
    Workbooks(Datei).Activate
End Sub


Achtung der Dateiname ist mit Endung anzugeben

Gruß

Helmut

Antwort 4 von Marie vom 05.05.2022, 22:44 Options

Erstelle eine Excel-Mappe mit einem Makro, welches mit Sub Auto_Open beginnt.

Den Datei Öffnen Dialog findest Du als API bei Dev Asish. http://www.mvps.org/access/api/api0001.htm

Gruß marie

Antwort 5 von nighty vom 06.05.2022, 08:26 Options

hi marie ^^

wusst ich doch das ich dich kenne :-))

http://www.google.de/images?hl=de&q=die+verzauberte+marie&um=1&ie=UTF-8&source=...

Verträumte Grüße Nighty

Antwort 6 von nighty vom 06.05.2022, 08:28 Options

hi all ^^

der link ging nicht mehr,nochmal :-))

gruss nighty

http://www.google.de/images?hl=de&q=die+verzauberte+marie&u...

Antwort 7 von DasBerlinerkindl vom 06.05.2022, 08:54 Options

ok, super schon mal. vielen dank.
aber wenn ich jetzt diesen dialog "datei öffnen" einbinde, wie kann ich dann die anderen makro "aktivitäten" programmieren?
sprich bspw. diese benutzerorientierte sortierung und solche sachen? der soll das dann ja bei jeder datei machen, welche ich über den dialog öffne.
wenn mir da noch jmd helfen könnte, wäre das klasse.
danke.

Antwort 8 von nighty vom 06.05.2022, 12:09 Options

hi hendrik ^^

ein beispiel,nach deinen wuenschen :-)

gruss nighty

einzufuegen
alt+f11/projektexplorer/DeineArbeitsmappe

speichern/schliessen/oeffnen

Private Sub Workbook_Open()
    Dim LZeile As Long, ZeilenArrSp1 As Long, ZeilenArrSp2 As Long    'bestimmung einiger variablen
    LZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row    'ermittlung der letzten zeile
    ReDim ArrSpalten(1 To LZeile, 1 To 2) As Variant    'ausdehnug eines arraqy mit bezug zu der variablen LZeile
    If Application.Dialogs(xlDialogOpen).Show = False Then Exit Sub    'datei oeffnen bzw abbruch
    Range("A2:B" & Rows.Count).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom    'spalten a+b verschachtelt sortieren
    ArrSpalten() = Range("C2:D" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)    'spalten c+d werden einem array zugewiesen fuer einen beliebigen vergleich
    For ZeilenArrSp1 = 1 To UBound(ArrSpalten())    'erste schleife fuer die 1 dimension einer eingelesenen spalte
        For ZeilenArrSp2 = 1 To UBound(ArrSpalten())    'zweite schleife fuer die 2 dimension einer eingelesenen spalte
            If ArrSpalten(ZeilenArrSp1, 1) = ArrSpalten(ZeilenArrSp2, 2) Then 'eine if else bedingung fuer einen vergleich
                'Dein Code
            Else
                'bei bedarf Else wegnehmen bzw Dein Code
            End If
        Next ZeilenArrSp2    'schleifenende
    Next ZeilenArrSp1    'schleifenende
    Range("H:H,J:J").Delete Shift:=xlToLeft    'loeschen von spalte h+j,als beispiel
End Sub  

Antwort 9 von nighty vom 06.05.2022, 12:12 Options

hi all ^^

der code sieht aber nicht schön aus mit den kommentaren dazwichen *grrr*

gruss nighty

Antwort 10 von DasBerlinerkindl vom 11.05.2022, 11:32 Options

servus nighty,

vielen dank für deine hilfe und diesen code. kam bis jetzt noch nicht zum antworten.
jedoch verstehe ich leider nicht alle kommentar punkte, mein problem ist, dass ich echt keinen plan von der vba materie habe.
wenn ich dir irgendwie sage, was ich da brauche, also pro spalte und so, kannst du da was für mich tun? ich denke, dass das alles weniger das problem ist, aber ich halt einfach keinen plan habe.

schick dir auch ein kasten bier dafür :D!!!

besten dank schon mal.

Antwort 11 von DasBerlinerkindl vom 11.05.2022, 13:01 Options

servus leute,

vllt kann mir damit von euch weiterhelfen, das wäre echt suuuuuper klasse.
Fasse mein Problem mal in ein paar Punkten zusammen:

Möchte gern eine leere Excel Datei haben, die ein Makro enthält, dass wenn ich es starte, den Dialog "datei öffnen" bringt, wo ich Datei auswählen kann.
Anschließend soll das Makro in der Spalte Q eine Sortierung "Benutzerdefiniert ist größer als 1" machen, sowie Sortierung Spalte S "Benutzerdefiniert enhält nicht "Kond.fehlt"
Spalte BH soll "Benutzerdefiniert "leer" sein"
Jetzt soll ein Vergleich zwischen der Spalte U und Spalte AA erfolgen, wobei dort nur die Zahlen ausgegeben werden sollen(bspw in einer neuen Spalte dahinter) oder einfach in dieser neuen Spalte ein "X" machen bzw markieren, welche in den beiden Spalten (U/AA) nicht übereinstimmen.

Wenn mir da jmd weiterhelfen könnte, wäre das sowas von klasse. Leider habe ich keine Ahnung davon und weiß überhaupt gar nicht, wie ich anfangen soll.

Vielen, vielen Dank Leute.

Ähnliche Themen

VBA Makro in Excel
aflk  01.12.2008 - 50 Hits - 1 Antwort

Wasserzeichen in Excel? Microsoft Office 2003
SCHADOW  31.01.2009 - 126 Hits - 4 Antworten

im Excel Makro Datei zum öffnen auswählen
andreas_3  24.04.2009 - 749 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026