Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

VBA-Access-Excel

Edgar Rau / 7 Antworten / Baumansicht Nickles

Hallo zusammen,

ich habe in Access (VBA) einen kleinen Code geschrieben, der Werte verschiedener Felder des aktuellen Datensatzes in bestimmte Zellen einer Excel Datei kopiert. Das klappt auch alles sehr gut.

Leider öffnet sich die Excel-Datei nur minimiert (das Excel-Symbol befindet sich in der Taskleiste und blinkt).

Wie kann ich es anstellen, dass sich die Excel-Datei sofort maximiert öffnet?

Hier der VBA-Code:

Dim xlApp As Object, xlBook As Object, xlSheet As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("Z:\werkstatt\auftragDurchsicht.xlt")
Set xlSheet = xlBook.Sheets("Tabelle1")
xlSheet.Cells(4, 8).value = Me.Angebotsnummer
xlSheet.Cells(10, 8).value = Me.KM_Stand
xlSheet.Cells(10, 1).value = Me.PKW
xlSheet.Cells(12, 1).value = Me.Kw_PS
xlSheet.Cells(12, 3).value = Me.HSN
xlSheet.Cells(12, 4).value = Me.TSN
xlSheet.Cells(12, 7).value = Me.Erstzulassung


Mein Betriebssystem ist Win7 64bit.

Vielen Dank im Voraus.

Gruß Edgar

Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen
hddiesel Edgar Rau „VBA-Access-Excel“
Optionen

Hallo Edgar,

hilft Dir der Link weiter?
http://support.microsoft.com/kb/510042/de

Windows 10 Pro 64-Bit, 22H2: MS Office Pro Plus 2016 32-Bit: Mein Motto: Leben und leben lassen: Gruss Karl
bei Antwort benachrichtigen
Edgar Rau hddiesel „Hallo Edgar, hilft Dir der Link weiter? http://support.microsoft.com/kb/510042/de“
Optionen

Hallo Karl,

vielen Dank für Dein Interesse, aber bei Deinem Link handelt es sich um das maximierte Öffnen von Datenbanken; ich suche allerdings nach einer Möglichkeit, die Exceldatei maximiert zu öffnen.

Folgendes habe ich schon ausprobiert:

Application.WindowState = xlMaximized
ActiveWindow.WindowState = xlMaximized
ActiveWindow.WindowState = xlNormal
Application.DisplayFullScreen = True


alles ohne Erfolg

Ob es nur bei Win7 so ist, kann ich erst am Montag sagen; dann wird es auf einem XP-Rechner ausprobiert. Wenn es da klappt, ist ja alles in Ordnung, denn da sollen die Datenbank und die Excel-Datei eingesetzt werden.

Gruß Edgar

Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen
neanderix Edgar Rau „VBA-Access-Excel“
Optionen

Nur als Tipp etwas code-kosmetik:

Das:

xlSheet.Cells(4, 8).value = Me.Angebotsnummer
xlSheet.Cells(10, 8).value = Me.KM_Stand
xlSheet.Cells(10, 1).value = Me.PKW
xlSheet.Cells(12, 1).value = Me.Kw_PS
xlSheet.Cells(12, 3).value = Me.HSN
xlSheet.Cells(12, 4).value = Me.TSN
xlSheet.Cells(12, 7).value = Me.Erstzulassung

kannst du besser so schreiben:

With xlSheet
  .Cells(4, 8).value = Me.Angebotsnummer
  .Cells(10, 8).value = Me.KM_Stand
  .Cells(10, 1).value = Me.PKW
  .Cells(12, 1).value = Me.Kw_PS
  .Cells(12, 3).value = Me.HSN
  .Cells(12, 4).value = Me.TSN
  .Cells(12, 7).value = Me.Erstzulassung
End With

Ist aber wirklich nur kosmetik

Volker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Edgar Rau Nachtrag zu: „VBA-Access-Excel“
Optionen

Hallo zusammen,

ich habe es eben auf meinem Laptop (WinXP) ausprobiert. Dort wird die Excel-Datei normal, also maximiert geöffnet. Es scheint also an Win7 zu liegen (die "Superbar" ?).

@Volker

Stimmt, aber es scheint wirklich "nur" Kosmetik zu sein; es sind zwar 2 Zeilen mehr, dafür aber fast 30 Zeichen weniger und ist professioneller. Danke dafür, habe es schon geändert.

Ich werde den Thread jetzt schließen.

Gruß Edgar

Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen
neanderix Edgar Rau „Nachtrag“
Optionen
Stimmt, aber es scheint wirklich "nur" Kosmetik zu sein; es sind zwar 2 Zeilen mehr, dafür aber fast 30 Zeichen weniger und ist professioneller. 
 
Es spart in erster linie tipparbeit, speziell wenn man mehrfach auf dasselbe Objekt Operationen machen muss.
Klar, man kann das Objekt in eine Variable packen (das hast du getan),, aber manchmal muss man das nachte Systemobjekt nutzen und dann ist es hilfreich:

statt 8 mal

ThisWorkbook.Worksheets("Tabelle1").Cells(n,m)= ....

schreibt  sich

With ThisWorkbook.Worksheets("Tabelle1")
  .Cells(....)
  .Cells(..)
...
...
...
End with

erstens deutlich leichter und ist zweitens auch leichter lesbar.

Volker
Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
PaoloP Edgar Rau „VBA-Access-Excel“
Optionen

Ich persönliche lehne .With ab mal so nebenbei.

xlApp.Visible = false
xlApp.Visible = true

Manchmal hilft das.
Ansonsten mit WinApi.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
neanderix PaoloP „Ich persönliche lehne .With ab mal so nebenbei. xlApp.Visible false...“
Optionen
Ich persönliche lehne With ab mal so nebenbei.
 

Verrätst du auch, warum? Ich sehe keinen logischen Grund dafür, im Ggenteil.
Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen