Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1004to1008
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Markieren, formatieren und sortieren via VB-Skript

Markieren, formatieren und sortieren via VB-Skript
01.09.2008 17:03:25
Wladimir
Hallo zusammen,
wie kann man in einer geschlossenen Excel-Datei via VB-Skript die Zellen markieren, formatieren und sortieren.
Danke im Voraus
Freundliche Grüße
Wladimir

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 17:21:49
Tino
Hallo,
ich behaupte mal, dass geht nicht.
Die Datei muss dazu geöffnet werden.
Gruß Tino
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 19:13:00
Wladimir
Hallo Tino,
schade... Aber ich brauche, dass die Datei geschlossen wird.
Freundliche Grüße
Wladimir
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 20:05:45
Tino
Hallo,
habe dies jetzt nicht getestet, aber so müsste es funktionieren.

dim excel
set excel = CreateObject(Class:="Excel.Application")
excel.visible = true
excel.Workbooks.Open "C:\Datei.xls"
excel.Range("A:A").Sort excel.Range("A1"), 1, 0, 1, False, 1, 0
excel.ThisWorkbook.Save
excel.Quit
Set excel = Nothing


Dies mal in eine Textdatei schreiben und als vbs Datei speichern.
Wie gesagt getestet habe ich dies nicht, bin auch nicht der Skript Experte
Gruß Tino

Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 07:46:12
Wladimir
Hallo Tino,
vielen Dank für Deinen Code, aber er funktioniert leider nicht. Ich glaube, dass die Zeile mit Range eher für VBA als VBS geeignet ist.
Freundliche Grüße
Wladimir
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 16:35:55
Tino
Hallo,
also ich habe dies mal getestet, so funktioniert es bei mir.
VBS akzeptiert die Zuordnung der Namen in der Sortierzeile nicht,
diese müssen weggelassen werden und gegebenenfalls durch leer lassen ersetzt werden.
Genau so wird gemeckert, wenn ich bei der Deklarierung Dim excel As Object verwende, also mach ich es ohne?

Dim excel
Set excel = CreateObject("Excel.Application")
excel.Visible = True
excel.Workbooks.Open "J:\1 Forum\Sort VBS\Datei.xls"
excel.Range("A:A").Sort excel.Range("A1"), 1, , , , , , 0, 1, False, 1, , 0
'Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header,
'OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
excel.Workbooks("Datei.xls").Save
excel.Quit
Set excel = Nothing


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 17:32:02
Andi
Hi,
ich nehme an, Du meinst VBA und nicht VB Skript, oder?
Wie Tino schon schreibt, muss die Datei dazu geöffnet sein; den Code, den Du dann zum Sortieren benötigst, kannst Du Dir mit dem Makrorekorder aufzeichnen.
Schönen Gruß,
Andi
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 19:11:00
Wladimir
Hallo Andi,
nein, ich meine kein VBA, sondern VB-Skript, der von "außen" aufgerufen wird und darunter einige Aufgaben im Excel erledigt.
Freundliche Grüße
Wladimir
AW: Markieren, formatieren und sortieren via VB-Skript
01.09.2008 20:09:00
Erich
Hallo Wladimir,
das könnte etwa so aussehen:

Dim objExcel As Object, objWorkbook As Object
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
Set objWorkbook = .Workbooks.Open("c:\test.xls")
With .objWorkbook
' hier dein Code zum Formatieren und Sortieren
' die nächste Zeile ist nur ein kleines Beispiel
.Sheets(1).Cells(1, 1) = "XXX"
.Close True   ' speichern und schließen
End With
.Quit
End With

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 07:51:03
Wladimir
Hallo Erich,
vielen Dank für Deinen Code.
Der Code, der Excel öffnet, habe ich schon. Ich brauche den Code, der die Zellen markiert, formatiert und sortiert.
Freundliche Grüße
Wladimir
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 10:38:41
Erich
Hi Wladimir,
IMHO unterlaufen dir da zwei Irrtümer:
"Ich glaube, dass die Zeile mit Range eher für VBA als VBS geeignet ist."
"VB-Skript, der von "außen" aufgerufen wird und darunter einige Aufgaben im Excel erledigt"
Wenn du mit einem Excel-Objekt wie Workbook arbeitest,
arbeitest du mit den Eigenschaften und Methoden des Excel-Objekts,
also mit VBA-Dingen, auch innerhalb eines VBS-Skripts.
Das tust du auch schon mit der Zeile
excel.Workbooks.Open "C:\Datei.xls"
Was wäre Workbooks.Open in VBS?
Das VB-Skript erledigt nicht selbst einige Aufgaben in Excel, sondern fordert Excel auf, das zu tun.
"Ich brauche den Code, der die Zellen markiert, formatiert und sortiert."
Wie kann/soll deiner Meinung nach unsere Unterstützung aussehen,
wenn wir nicht wissen, was wie markiert (wozu markieren?), formatiert und sortiert werden soll?
Sollen wir irgend ein Beispiel bauen und das daran erklären? Das wird nicht passen.
Z. B. gibt es viele verschiedene Formatierungen (Zahlformate, Farben, Rahmen, ...).
Ich sehe jetzt zwei Möglichkeiten, wie du an den noch fehlenden Code kommen könntest:
- Makroaufzeichnung (VBA,
- Du schreibst hier konkret und genau, was wie in der Mappe getan werden soll
(welches Blatt, welcher Bereich, welches Format, wonach und wie sortiert?),
dann kann hier jemand für dich der Code schreiben/aufzeichnen oder was auch immer.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 13:39:27
Wladimir
Hallo Erich,
Danke für Deine Hilfsbereitschaft.

"Wenn du mit einem Excel-Objekt wie
Workbook arbeitest,
arbeitest du mit den Eigenschaften und
Methoden des Excel-Objekts,
also mit VBA-Dingen, auch innerhalb
eines VBS-Skripts.
Das tust du auch schon mit der Zeile
excel.Workbooks.Open "C:\Datei.xls"
Was wäre Workbooks.Open in VBS?"


Set objWorkbook = Excel.Workbooks.Open("c:\test.xls")
wenn ich z. B. in eine Zelle was schreiben will, sieht es in VBS so:
Excel.ActiveSheet.Cells(45,1).Value = "Name"
So viel ich weiß in VBA soll zunächst etwas mit Range deklariert werden und A45 stehen.


"Das VB-Skript erledigt nicht selbst
einige Aufgaben in Excel, sondern
fordert Excel auf, das zu tun."


Ich verstehe, was Du damit sagen willst, aber VBS gibt einen Fehler und ich komme leider nicht weiter.


"- Du schreibst hier konkret und genau,
was wie in der Mappe getan werden soll
(welches Blatt, welcher Bereich, welches
Format, wonach und wie sortiert?),
dann kann hier jemand für dich der Code
schreiben/aufzeichnen oder was auch
immer. "


Es gibt eine Tabelle (Tabellenblatt 1) im Bereich A45:AV77. Die erste Spalte ist Name, Vorname, nach der sortiert werden soll. Die Spalte A soll linksbündig formatiert werden, da nach dem Eintragen vom Skript, ist die Eintragung rechtsbündig. Spalte B, C und D sollen als Datum und Rest als Zahl formatiert werden.
Ich glaube, dass ich nichts vergessen habe.
Nochmals Danke
Freundliche Grüße
Wladimir

Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 17:02:54
Tino
Hallo,
zeichne doch mal mit dem Makrorekorder genau das auf, was dass VBS machen soll,
ist bestimmt einfacher wie tausend Worte.
Bitte ohne Zwischenaktionen die nichts mit der Aktion zu tun haben, da der Rekorder alles aufzeichnet was du machst (zBsp: Aktion Rückgängig machen, weil man gemerkt hat es war falsch).
Gruß Tino
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 19:22:19
Wladimir
Hallo Tino, Hallo Erich,
ich bedanke mich bei Euch herzlich für Eure Hilfe. Es hat wunderbar geklappt.
Als ich selbst versuchte, Makros aufzunehmen und dann als VBS zu speichern scheiterte ich, kamm immer Fehlermeldung und konnte nichts dafür. Aber jetzt sehe ich, dass es doch mit Euren Skripten geht.
Nochmals vielen Dank und noch dazu eine Frage:
ich habe bereits in diesem Forum nach FormulaArray gefragt, aber bis jetzt keine Antwort bekommen. Ich versuchte dabei Makros aufzunehmen, aber bei der Eingabe der Matrix-Formel und STRG+Umschalt+Enter meldete der Recordr, dass er dies nicht aufnehmen kann.
Wie soll ich vorgehen, um diese Schritte doch aufnehmen zu können?
Freundliche Grüße
Wladimir
Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 19:53:00
Tino
Hallo,
sollte dies mit dem Makrorekorder nicht funktionieren, habe ich noch einen kleinen Trick.
Füge eine neue Tabelle ein wähle aber die „Internationale Makrovorlagen“ in diese kopierst du deine Zelle mit der Formel, nun bekommst du die Englische Syntax dieser Formel, diese wiederum kannst du nun in einem Makro versenden.
Beispiel:
 ABCDEFGHIJKLMNOP
3311620254549 21416214949 3

Formeln der Tabelle
ZelleFormel
P3{=SUMME(ZÄHLENWENN(A3:G3;I3:N3))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

Zelle P3 in die Tabelle Internationale Makrovorlage ergibt dies.
 P
3=SUM(COUNTIF(A3:G3,I3:N3))

Formeln der Tabelle
ZelleFormel
P3{=SUMME(ZÄHLENWENN(A3:G3;I3:N3))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

Diese kannst du nun so in einem Makro versenden.

Range("O3").FormulaArray = "=SUM(COUNTIF(A3:F3,H3:M3))"


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Markieren, formatieren und sortieren via VB-Skript
02.09.2008 17:03:52
Erich
Hi Wladimir,
wenn du diese Zeilen als VBS speicherst, sollte das auch funzen

Dim objExcel, objWorkbook, objWks
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
Set objWorkbook = .Workbooks.Open("c:\test.xls")
Set objWks = objWorkbook.Sheets("Tabelle1")
With objWks
.Columns("A:A").HorizontalAlignment = -4131
.Columns("B:D").NumberFormat = "m/d/yyyy"
.Columns("E:AV").NumberFormat = "#,##0.00"
.Range("A45:AV77").Sort objWks.Range("A46"), 1, , , , , , 1, 1, False, 1
End With
objWorkbook.Close True   ' speichern und schließen
.Quit
End With
MsgBox "fertig"

Habe gerade auch Tinos Lösung gesehen, geht in die gleiche Richtung.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige