Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Formatierung Excel-Datei in Access
zurück: Vergleich auch mit Null weiter: Tertial aus Datum ausgeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Christine M
Gast


Verfasst am:
14. Mai 2007, 12:20
Rufname:

Formatierung Excel-Datei in Access - Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo, wer kann mir helfen?

In meiner Access-Anwendung gebe ich Excel-Dateien aus
Code:
    DoCmd.OutputTo acOutputTable, "yyy", acFormatXLS, "xxx.xls", False)
, welche anschliessend noch nach-formatiert werden.
Dazu öffne ich die jew. Datei wieder und bearbeite sie wie unten beschrieben.

Ergebnis ist:
1) Teilweise sind die neuen Formate anschliessend drin, teilweise nicht. (während der Bearbeitung konnte ich die fehlenden Änderungen aber in der Datei sehen)
2) Die Ergebnisdatei ist anscheinend unter einer "alten" Version erstellt worden und sollte konvertiert werden. Das wird gemeldet, wenn man anschl. die Datei öffnet.
Code:
    Set excel97 = CreateObject("Excel.Application")
Fällt euch dazu was ein?

Viele Grüße Christine
Code:
        On Error GoTo 0
        With excel97
            .Visible = True
            .Workbooks.Open FileName:="xxx.xls"
            .Range("G1").Select
            .ActiveCell.FormulaR1C1 = "Seg"
            .Columns("G:G").EntireColumn.AutoFit
            .Set MyRange = .ActiveCell.SpecialCells(xlLastCell)
            .Range("A2", MyRange).Select
            .Selection.FormatConditions.Delete
            .Selection.FormatConditions.Add Type:=xlExpression, _
                                            Formula1:="=$G2<>"""""
            With Selection.FormatConditions(1).Font
                .Bold = True
                .Italic = False
            End With
            Range("D11").Select
            Columns("D:D").ColumnWidth = 43.57
            .ActiveWorkbook.Save
        End With
        excel97.Application.Quit
        Set excel97 = Nothing
jens05
Moderator


Verfasst am:
14. Mai 2007, 19:49
Rufname:
Wohnort: ~~~~~


AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo,
versuche es mal anstatt mit OutputTo mit der TransferSpreadsheet-Methode.

Anderenfalls könntest du mal hier rein sehen.
Export nach Excel mit allem Drum und Dran
oder hier Access Abfrage in bestehende Exceltabelle (ex)portieren

_________________
mfg jens05 Wink
Gast



Verfasst am:
16. Mai 2007, 15:13
Rufname:

AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Vielen Dank, das hat mich schonmal einen schritt weitergebracht: Die Excel-Version habe ich nun beeinflussen können, also keine Konvertierung mehr notwendig.

Dafür habe ich nun das Problem, dass das Statement
Code:
            .Set MyRange = .ActiveCell.SpecialCells(xlLastCell)
im Code nicht mehr akzeptiert wird. Es erscheint die Fehlermeldung
Zitat:
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt
Das lief vorher aber durch....

Ich kann mir das nicht erklären...

VG Christine
SGast
Gast


Verfasst am:
16. Mai 2007, 15:36
Rufname:

AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo Christine,
der Code dürfte so auch nicht korrekt sein (z.B. der Punkt vorm Set)
Am besten du postest mal den kompletten (Excel)-Code.

Gruß Steffen
Christine M
Gast


Verfasst am:
18. Mai 2007, 09:11
Rufname:


AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo Steffen,

Super.- Der Punkt wars. (warum auch immer der da drin war, ich hab ihn nicht bewusst verändert)

Vielen Dank!!

Vielleicht kannst du mir dann aber noch etwas sagen ???? (wär toll !!!!!) :

Diese Fehlermeldung (s.o.) bekomme ich nun auch später nochmal in diesem Excel-Block, und zwar an der Stelle
Code:
            With Selection.FormatConditions(1).Font
                .Bold = True
                .Italic = False
            End With
die gesamte Excel-Passage steht oben im Text. Wolltest du mehr Code sehen?
Das könnte aber viel werden...

Komischerweise tritt das bei der ersten Excel-Datei nicht auf, erst bei der zweiten verarbeiteten Excel-Datei (ich gebe eine Reihe Dateien in einer Schleifenverarbeitung aus).

Viele Grüße - Christine
steffen0815
VBA-Programmierer


Verfasst am:
18. Mai 2007, 10:15
Rufname:

AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo Christine,
ja mit solchen Fehlern werden Programmierer bestraft, die nicht auf die kleinen Punkte achten Laughing.

Ist dir die Funktion des Punktes bekannt ?

Die Zeile " With excel97 " soll dir im folgendem Schreibarbeit abnehmen.
Immer wenn du eine Zeile mit dem Punkt beginnst, wird dafür "Excel97" eingesetzt.
Excel97 ist dabei der Verweis auf das Excelobjekt.
Und so wie ein "Excel97.Set" keinen Sinn macht (denn der Objektverweis wird für Access benötigt), macht ein
Code:
            Range("D11").Select
ohne den Excelverweis keinen Sinn, denn Access kennt kein Range-Object.

Also alles was in Excel läuft muss auch auf Excel bezogen werden entweder mit Punkt (innerhalb der With- Anweisung)
Code:
            .Range("D11").Select
            .Columns("D:D").ColumnWidth = 43.57
Oder direkt
Code:
            Excel97.Range("D11").Select
            Excel97.Columns("D:D").ColumnWidth = 43.57

_________________
Gruß Steffen
Christine M
Gast


Verfasst am:
18. Mai 2007, 11:58
Rufname:

AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo Steffen,

ja, das stimmt. Den Smile hab ich verdient.
Die Bedeutung des Punktes war mir bewusst, nur nicht immer, was Excel ist, und was Access.
In der Tat waren die Punkte in meiner Anwendung aber richtig gesetzt. Ich hab mir da wohl oben im Code Kopierfehler eingebaut. (Ich wollte nicht den ganzen Code reinbringen, um nicht zu lang zu werden und meine Probiereien nicht so sichtbar zu machen Razz . Ich kann nur lernen davon! Ich bin ein Forums-Neuling, sorry)

aber mein Problem besteht leider weiterhin... Crying or Very sad

Hier der ganze Code, um weitere Kopierfehler auszuschließen:
Code:
                Set excel97 = CreateObject("Excel.Application")
                On Error GoTo 0
                With excel97
                    .Visible = True
                    .Workbooks.Open FileName:=pfad & Standort & "-" & _
                                              Portfolioname_alt & ".xls"
                    .Sheets(1).Select
                    .Sheets(1).Name = Portfolioname_alt
                    .Range("G1").Select
                    .ActiveCell.FormulaR1C1 = "Seg"
                    .Range("I1").Select
                    .ActiveCell.FormulaR1C1 = " "
                    .Range("J1").Select
                    .ActiveCell.FormulaR1C1 = " "
                    .Columns("I:I").Select
                    .Columns("H:H").EntireColumn.AutoFit
                    .Columns("I:I").EntireColumn.AutoFit
                    .Columns("F:F").EntireColumn.AutoFit
                    .Columns("A:A").EntireColumn.AutoFit
                    .Columns("D:D").EntireColumn.AutoFit
                    .Columns("G:G").EntireColumn.AutoFit
                    Set MyRange = .ActiveCell.SpecialCells(xlLastCell)
                    .Range("A2", MyRange).Select
                    '.Range("A2:G25").Select
                    .Selection.FormatConditions.Delete
                    .Selection.FormatConditions.Add Type:=xlExpression, _
                                                    Formula1:="=$G2<>"""""
                    With Selection.FormatConditions(1).Font
                        .Bold = True
                        .Italic = False
                    End With
                    .Range("D11").Select
                    .Columns("D:D").ColumnWidth = 43.57
                    '.ActiveWorkbook.Application.SaveWorkspace
                    '.ActiveWorkbook.ScreenUpdating = True
                    .ActiveWorkbook.Save
                    '.ActiveWorkbook.Application.Quit
                    .ActiveWorkbook.Close (True)
                End With
                excel97.Application.Quit
                Set excel97 = Nothing
Wie du siehst probiere ich noch ziemlich rum...

Viele Grüße - Christine
steffen0815
VBA-Programmierer


Verfasst am:
18. Mai 2007, 12:20
Rufname:

AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

@Christine,
ich sehe was, was du nicht siehst .... Laughing
Ich wüsste nicht dass Selection ein Access-Objekt ist Wink
Code:
                    With .Selection.FormatConditions(1).Font
Noch ein paar allgemeine Hinweise zur Fehlervermeidung:
1.
an jeden Modulanfang ein Option explicit

2.
Nicht den in Excel aufgezeichneten Code verwenden, sondern diesen überarbeiten. So ist in Excel zu 99% der Selection-Befehl überflüssig

3.
Ich arbeite eigentlich immer ohne Verweis auf die Excelbibliothek:
Nachteil: alle Excelkonstanten müssen in Access deklariert werden und der Objektkatalog von Excel steht nicht zur Verfügung
Vorteil: alle deine Fehler wären bereits vor dem Codelauf erkannt wurden.

UNGETESET würde ich das ganze ungefähr so machen (meine Kenntnisse in Excel sin aber eher bescheiden)
Code:
    Dim excel97 As Object, xlSheet As Object, MyRange As Object
    Const xlLastCell = 11
    Const xlExpression = 2
   
    Set excel97 = CreateObject("Excel.Application")
    excel97.Visible = True
    excel97.Workbooks.Open Pfad & Standort & "-" & Portfolioname_alt & ".xls"
    Set xlSheet = excel97.Sheets(1)
    With xlSheet
        .Name = Portfolioname_alt
        .Range("G1").FormulaR1C1 = "Seg"
        .Range("I1").FormulaR1C1 = " "
        .Range("J1").FormulaR1C1 = " "
        .Columns("H:H").EntireColumn.AutoFit
        .Columns("I:I").EntireColumn.AutoFit
        .Columns("F:F").EntireColumn.AutoFit
        .Columns("A:A").EntireColumn.AutoFit
        .Columns("D:D").EntireColumn.AutoFit
        .Columns("G:G").EntireColumn.AutoFit
        Set MyRange = .Columns("I:I").SpecialCells(xlLastCell)
        .Range("A2", MyRange).FormatConditions.Delete
        .Range("A2", MyRange).FormatConditions.Add Type:=xlExpression, _
                                                   Formula1:="=$G2<>"""""
        With .Range("A2", MyRange).FormatConditions(1).Font
            .Bold = True
           .Italic = False
        End With
        .Range("D11").Columns("D:D").ColumnWidth = 43.57
    End With
    excel97.ActiveWorkbook.Save
    excel97.ActiveWorkbook.Close (True)
    excel97.Application.Quit
    Set excel97 = Nothing

_________________
Gruß Steffen
Christine M
Gast


Verfasst am:
21. Mai 2007, 11:56
Rufname:


AW: Formatierung Excel-Datei in Access - AW: Formatierung Excel-Datei in Access

Nach oben
       Version: Office 97

Hallo Steffen,

tausend Dank !!!
Es hat alles geklappt. Laughing
Ich werde künftig alle "Selections" eliminieren.

Am liebsten würde ich dich nach deiner Email-Adresse fragen
für den Fall, dass ich nochmal ratlos bin...
(bitte keinen Schreck kriegen! sollte nur ein Kompliment sein)

Viele Grüße - Christine
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung Abfragetyp "Tabelle erstellen" 9 AccessManni 321 29. März 2013, 16:20
Willi Wipp Formatierung Abfragetyp "Tabelle erstellen"
Keine neuen Beiträge Access Tabellen & Abfragen: Verknüpfung mit externer Excel-Datei 1 RIGA 98 27. März 2013, 20:14
Gast Verknüpfung mit externer Excel-Datei
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung von Zahlen in Union Abfrage 5 Xumen 941 27. Sep 2011, 17:47
Nouba Formatierung von Zahlen in Union Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Bedingte Formatierung 1 Nils13 208 18. Mai 2011, 11:44
KlausMz Bedingte Formatierung
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Formatierung von Spalten 8 Gast 808 12. Aug 2010, 16:20
Gast SQL - Formatierung von Spalten
Keine neuen Beiträge Access Tabellen & Abfragen: Automatische Formatierung des SQL-Code 4 cheeZy 1025 03. Jul 2009, 10:39
Z.Mart Automatische Formatierung des SQL-Code
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung berechnetes Feld in einer Abfrage Access 2007 1 SHI 2638 13. Jun 2009, 11:51
Gast Formatierung berechnetes Feld in einer Abfrage Access 2007
Keine neuen Beiträge Access Tabellen & Abfragen: Access Abfrageformel Formatierung??? 0 Krissie 509 08. Feb 2008, 11:38
Krissie Access Abfrageformel Formatierung???
Keine neuen Beiträge Access Tabellen & Abfragen: Bedingte Formatierung in Abfrage möglich? 10 Markos 1894 20. Nov 2007, 09:54
SGast Bedingte Formatierung in Abfrage möglich?
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung bei Anfügeabfrage 2 Craig Marduk 603 18. Okt 2006, 11:57
Craig Marduk Formatierung bei Anfügeabfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung geht verloren 5 hansschmidt 2004 01. Aug 2006, 10:37
Willi Wipp Formatierung geht verloren
Keine neuen Beiträge Access Tabellen & Abfragen: Formatierung auf hundertstel sekunde 1 Rookie83 3746 27. Apr 2006, 12:28
Nouba Formatierung auf hundertstel sekunde
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps