Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Markieren, formatieren und sortieren via VB-Skript | Herbers Excel-Forum


Betrifft: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 01.09.2008 17:03:25

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

  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Tino
Geschrieben am: 01.09.2008 17:21:49

Hallo,
ich behaupte mal, dass geht nicht.
Die Datei muss dazu geöffnet werden.


Gruß Tino


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 01.09.2008 19:13:53

Hallo Tino,

schade... Aber ich brauche, dass die Datei geschlossen wird.

Freundliche Grüße
Wladimir


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Tino
Geschrieben am: 01.09.2008 20:05:45

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 02.09.2008 07:46:12

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Tino
Geschrieben am: 02.09.2008 16:35:55

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




  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Andi
Geschrieben am: 01.09.2008 17:32:02

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 01.09.2008 19:11:20

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Erich G.
Geschrieben am: 01.09.2008 20:09:58

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 02.09.2008 07:51:03

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Erich G.
Geschrieben am: 02.09.2008 10:38:41

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 02.09.2008 13:39:27

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Tino
Geschrieben am: 02.09.2008 17:02:54

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Wladimir
Geschrieben am: 02.09.2008 19:22:19

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Tino
Geschrieben am: 02.09.2008 19:53:03

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




  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Erich G.
Geschrieben am: 02.09.2008 20:47:10

Hi Wladimir,
schau mal in deinen alten Thread dazu:

aktuell:
https://www.herber.de/forum/messages/1006938.html
Archiv:
https://www.herber.de/forum/archiv/1004to1008/t1006391.htm#1006938

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


  

Betrifft: AW: Markieren, formatieren und sortieren via VB-Skript von: Erich G.
Geschrieben am: 02.09.2008 17:03:52

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


Beiträge aus den Excel-Beispielen zum Thema "Markieren, formatieren und sortieren via VB-Skript"