Supportnet / Forum / Tabellenkalkulation
Zeigt her Eure Excel-Makros :-)
Frage
Hi,
was sind so Eure Makro-Favoriten, die immer wieder gebraucht werden?
Ich fange mal an :-)
Unten von mir ein Code, gedacht für einen Symbolleisten-Button. Durch Klick darauf wird im aktiven Tabellenblatt eine Range ausgewählt, bis zu der sich die Daten befinden.
[code]Sub AlleZellenMitDatenMarkieren()
'#############################################################
'Markiert dem Zellbereich, der alle Daten enthält.
'Dabei wird bei Zelle A1 gestartet.
'Es wird (a) die letzte Zeile mit Daten ermittelt (über alle 255 Spalten), dabei die unterste Zeile gesucht
'Dann wird (b) de letzte Spalte mit Daten ermittelt
'Als Ergebnis werden alle Zellen von A1 bis zum jeweiligen Treffer markiert
'#############################################################
On Error GoTo ErrorHandler
Dim X As Long 'Spalte
Dim Y As Long 'Zeile
Dim lLastRowCurrent As Long
Dim lLastRowOverAll As Long
Dim lLastColumnCurrent As Long
Dim lLastColumnOverAll As Long
Dim ws As Worksheet
Set ws = ActiveSheet 'Aktuelles Tabellenblatt
lLastRowOverAll = 1
lLastColumnOverAll = 1
'----> Letzte Zeile mit Daten
For X = 1 To 255
Y = ws.Rows.Count
lLastRowCurrent = ws.Cells(Y, X).End(xlUp).Row
If lLastRowCurrent > lLastRowOverAll Then
lLastRowOverAll = lLastRowCurrent
End If
Next X
'<------
'MsgBox "Letzte Zeile mit Daten = " & lLastRowOverAll
'----> Letzte Spalte mit Daten
For Y = 1 To lLastRowOverAll 'Nimmt als Basis die letzte Zeile mit Daten, Grund: Speedup :-)
X = ws.Columns.Count
lLastColumnCurrent = ws.Cells(Y, X).End(xlToLeft).Column
If lLastColumnCurrent > lLastColumnOverAll Then
lLastColumnOverAll = lLastColumnCurrent
End If
Next Y
'<------
'MsgBox "Letzte Spalte mit Daten = " & lLastColumnOverAll
'Nun den Zellbereich mit Daten selektieren
Range(ws.Cells(1, 1), ws.Cells(lLastRowOverAll, lLastColumnOverAll)).Select
ExitScript:
Exit Sub
ErrorHandler:
Resume ExitScript
End Sub[/code]
Logic
Antwort 1 von Ralfman
Hallo logic,
ich Versteh den sinn Deiner Anfrage nicht so ganz.
Ich bin zwar nicht der Macro Mensch und schon gar kein Excel-könner aber warum sollte sich jemand outen? möchtest Du sammeln um künftig mit wissen das nicht von Dir kommt...?
Mahl Ehrlich, was hast Du vor?
gruß
Ralfman
Bitte entschuldigt alle Rechtschreibfehler, aber
manchmal sind die Finger schneller als der kopf...
ich Versteh den sinn Deiner Anfrage nicht so ganz.
Ich bin zwar nicht der Macro Mensch und schon gar kein Excel-könner aber warum sollte sich jemand outen? möchtest Du sammeln um künftig mit wissen das nicht von Dir kommt...?
Mahl Ehrlich, was hast Du vor?
gruß
Ralfman
Bitte entschuldigt alle Rechtschreibfehler, aber
manchmal sind die Finger schneller als der kopf...
Antwort 2 von logic
>> aber warum sollte sich jemand outen?
Hä?
Jetzt verstehe ich Deine Frage nicht ganz.
>> möchtest Du sammeln um künftig mit wissen das nicht von Dir kommt...?
Verstehe den Satz auch nicht.
Hier soll jeder gerne posten, der Makros/Scripts im Einsatz hat bzw. erstellt hat, die auch für andere nützlich sein können. Hat überhaupt nix mit outen zu tun.
Aber erkläre doch bitte nochmal was Du meinst, habe jetzt Dein Posting 3mal gelesen ohne genau verstanden zu haben um was es geht, sorry.
Logic
Hä?
Jetzt verstehe ich Deine Frage nicht ganz.
>> möchtest Du sammeln um künftig mit wissen das nicht von Dir kommt...?
Verstehe den Satz auch nicht.
Hier soll jeder gerne posten, der Makros/Scripts im Einsatz hat bzw. erstellt hat, die auch für andere nützlich sein können. Hat überhaupt nix mit outen zu tun.
Aber erkläre doch bitte nochmal was Du meinst, habe jetzt Dein Posting 3mal gelesen ohne genau verstanden zu haben um was es geht, sorry.
Logic
Antwort 3 von Golf2004
Hallo loqic!
Ist eh toll das Du dir die Zeit mit MS-excel, vertreibst!
Aber bedenke auch, wer braucht ms-excel heut zu tag noch?
Wir in unserer Firma, wir arbeiten nur mit fertigen Applikationen und die Dinger sind noch dazu auf Linux aufgesetzt!
Excel ist nur ein Notnagel für arme Firmen und
Schüler!
Und wenn wieder ne neue Office-Version rauskommt,
dann funktionieren die excel-scripts eh nicht mehr mit der alten OFFICE-VERSION!
Damit meine ich, das MS-Zeugs ist nicht so recht
abwärts kompatibel zu älteren Office-Anwendungen!
DENN NICHT JEDER KAUFT SICH DAS NEUESTE EXCEL (bzw. OFFICE-PACKET).
Wenn Du ein excel-script mit office2004 erstellst, so kann ich es eh nicht benutzen - ich hab nur OFFICE2000 installiert und viele andere Leute auch!
Meine excel-scripts funktionieren ja auch nicht mit OFFICE97 (Schade um die Arbeit und Zeit die du vertrödelst).
Gruß Golf2004
Ist eh toll das Du dir die Zeit mit MS-excel, vertreibst!
Aber bedenke auch, wer braucht ms-excel heut zu tag noch?
Wir in unserer Firma, wir arbeiten nur mit fertigen Applikationen und die Dinger sind noch dazu auf Linux aufgesetzt!
Excel ist nur ein Notnagel für arme Firmen und
Schüler!
Und wenn wieder ne neue Office-Version rauskommt,
dann funktionieren die excel-scripts eh nicht mehr mit der alten OFFICE-VERSION!
Damit meine ich, das MS-Zeugs ist nicht so recht
abwärts kompatibel zu älteren Office-Anwendungen!
DENN NICHT JEDER KAUFT SICH DAS NEUESTE EXCEL (bzw. OFFICE-PACKET).
Wenn Du ein excel-script mit office2004 erstellst, so kann ich es eh nicht benutzen - ich hab nur OFFICE2000 installiert und viele andere Leute auch!
Meine excel-scripts funktionieren ja auch nicht mit OFFICE97 (Schade um die Arbeit und Zeit die du vertrödelst).
Gruß Golf2004
Antwort 4 von logic
Golf:
Der größte Teil aller Firmen haben Excel als Standardanwendung.
Eine Abwärtskompatibilität ist meist gegeben, ich vermute zu größer 95%. Die restlichen 5% lassen sich schnell anpassen.
Es ist auch keine Zeitverschwendung, wenn Du wiederkehrende Aufgaben dank Exel-Makros abkürzt. Das oben gepostete Makro hat etwa 15 Minuten Zeit in Anspruch genommen es zu erstellen. Da ich selbst es oft brauche, und viele Kollegen auch, und es Zeit einspart, ist der BreakEven schnell erreicht.
Das Makro habe ich übrigens unter Excel 2000 erstellt, es würde mich stark wundern, wenn es unter Excel 2003 nicht mehr läuft.
Excel als Notnagel für Schüler? Nein, dafür kostet es zu viel.
Logic
Der größte Teil aller Firmen haben Excel als Standardanwendung.
Eine Abwärtskompatibilität ist meist gegeben, ich vermute zu größer 95%. Die restlichen 5% lassen sich schnell anpassen.
Es ist auch keine Zeitverschwendung, wenn Du wiederkehrende Aufgaben dank Exel-Makros abkürzt. Das oben gepostete Makro hat etwa 15 Minuten Zeit in Anspruch genommen es zu erstellen. Da ich selbst es oft brauche, und viele Kollegen auch, und es Zeit einspart, ist der BreakEven schnell erreicht.
Das Makro habe ich übrigens unter Excel 2000 erstellt, es würde mich stark wundern, wenn es unter Excel 2003 nicht mehr läuft.
Excel als Notnagel für Schüler? Nein, dafür kostet es zu viel.
Logic
Antwort 5 von Golf2004
Ja, ja ...excel-scripts sind schon aufwärts kompatibel aber nicht anders rum!
Ich kreide nicht das excel alleine schwarz an,
sondern alle ms-office packete generell.
z.B.: Vor jahren, hat unser Büro mit ms-power-point (mit officeXP)
incl. excel - eine tolle Präsentation erstellt
und auf gelabelten CD-R's erstellt - dann 100
fach kopiert und an Firmen Weltweit versendet.
Es war zum Tot lachen... (typisch ms)
Das Zeug hat nur auf unseren PC's funktioniert
Die fernen Länder haben nie was von ms-officeXP
gehört, bzw. nicht installiert gehabt.
(MS-OfficeXP ist auch nicht so recht abwärts-kompatibel zu ms-office2000).
Also unsere Powerpoint-Präsentation war vielleicht ein reinfall !!!!!!!!
Deshalb arbeiten wir nicht mehr mit ms-produkten!
Damit das nicht wieder passiert, haben wir auch zusätzlich noch teuere PräsentationsManager zu gekauft die nicht auf MS-Office aufsetzen sondern eigenständige EXE files erstellen können mit allem drum und dran, die dann automatisch auf CD-R's gebrannt werden ..oder auch nicht!
Gruß Golf2004
Ich kreide nicht das excel alleine schwarz an,
sondern alle ms-office packete generell.
z.B.: Vor jahren, hat unser Büro mit ms-power-point (mit officeXP)
incl. excel - eine tolle Präsentation erstellt
und auf gelabelten CD-R's erstellt - dann 100
fach kopiert und an Firmen Weltweit versendet.
Es war zum Tot lachen... (typisch ms)
Das Zeug hat nur auf unseren PC's funktioniert
Die fernen Länder haben nie was von ms-officeXP
gehört, bzw. nicht installiert gehabt.
(MS-OfficeXP ist auch nicht so recht abwärts-kompatibel zu ms-office2000).
Also unsere Powerpoint-Präsentation war vielleicht ein reinfall !!!!!!!!
Deshalb arbeiten wir nicht mehr mit ms-produkten!
Damit das nicht wieder passiert, haben wir auch zusätzlich noch teuere PräsentationsManager zu gekauft die nicht auf MS-Office aufsetzen sondern eigenständige EXE files erstellen können mit allem drum und dran, die dann automatisch auf CD-R's gebrannt werden ..oder auch nicht!
Gruß Golf2004
Antwort 6 von nighty
hi alle :)
unentbehrlich geworden :)
ermittelt die letzte zeile wie spalte
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
a = LastCell.Row
Do While Application.CountA(Rows(a)) = 0 And a <> 1
a = a - 1
Loop
alta = a
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
hatte sicci gepostet :)
gruss nighty
unentbehrlich geworden :)
ermittelt die letzte zeile wie spalte
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
a = LastCell.Row
Do While Application.CountA(Rows(a)) = 0 And a <> 1
a = a - 1
Loop
alta = a
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
hatte sicci gepostet :)
gruss nighty

