Office – die neusten Beiträge

Mit Access und VBA einen formatierten Excel-Export durchführen?

Guten Tag, ich hänge mal wieder bei einer Access - Excel Frage fest.

Ich habe ein Access eine Abfrage geschrieben, die mir sortiert eine ID, den zugehörigen Namen und alle dazu zugewiesenen Daten ausgibt.

Da jede Id + name mehrere Daten haben kann, steht das ganzen in mehreren zeilen untereinander. Ich möchte das ganze nun in eine Excel-Datei via Makro exportieren und das ganze so formatieren das Id + name nur einmal drann steht und dann alle Daten.

Das ganze sieht also eig. so aus.

id || name || daten

1 || n1 || daten1

1 || n1 || daten2

1 || n1 || daten3

und soll in der Exel Datei dann so aussehen.

id || name || daten

1 || n1 || daten1

_ || _ || daten2

_ || _ || daten3

_ bedeutet das dort kein Eintrag in der Zelle mehr steht. Ich habe das bisher so gemacht, das ich Die Daten aus Access händisch in eine Excel kopiert habe und dann dort mit einem Makro alles raus sortiert habe. Dim xErsteZeile As Long Dim xZeile As Long

        xErsteZeile = Cells(Rows.Count, 1).End(xlUp).Row
    
        For xZeile = xErsteZeile To 1 Step -1
          If Application.WorksheetFunction.CountIf(Columns(1), Cells(xZeile, 1).Value) > 1 Then
                Range("A" & xZeile).Select
                Selection.Delete Shift:=xlUp
                Range("B" & xZeile).Select
                Selection.Delete Shift:=xlUp
          End If
        Next

Ich würde das ganze jetzt aber über Access machen da es ja der Ausgangspunkt ist. Wenn ich ein Export in ACCES anschaue in VBA sieht dieser ja so aus.

    DoCmd.OutputTo acOutputQuery, "jh_01_01_Abfrage", "Excel97-Excel2003Workbook(*.xls)", "", True, "", , acExportQualityPrint

kann ich davor die Daten noch bearbeiten wie in Excel? Und wenn ja kann mir eventuell jemand einen Tipp geben?

Würde mich sehr freuen.

Grüße

Frost.

Office, Microsoft Excel, programmieren, Access, Makro, VBA

Excel: Operator aus anderen Zelle auslesen?

Hallo Leute,

ich schildere mein Probelm: Ich hab vorerst eine Tesliste erstellt, welche ungefähr so aussieht:

| A | 4 | | B | 5 | | C | 7 |

...

Jetzt möchte ich woanders eine Formel eingeben, welche die Zelle rechts daneben automatisch einliest und ausrechnet. Die Zelle kann die Formel schon einlesen. Das schaut ungefähr so aus:

=SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)&TEIL(D1;2;1)&SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH)

Die Liste befindet sich in den Spalten A und B und die Formel und ausgerechnete Formel in den Spalten D und E. Das Grüne ist die Auslese für die Variablen und das Rote die für den Operator. Allerdings wird der Operator nicht als dieser angesehen, sondern als String, wodurch nicht die ausgerechnete Formel dasteht sondern die Zahlen für die einzelnen Variablen.

Ein Beispiel:

| AxB | 4x5 |

Eigentlich sollte dastehen:
| AxB | 20 |

Jetzt hab ich eine etwas sehr komplizierten Code für 2 Variablen zusammengeschustert:

=WENN(TEIL(D1;2;1)="x";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)xSVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="+";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)+SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="-";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)-SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="/"; SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)/SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);"unzlässiger Multiplikator"))))

Ein bisschen vereinfacht: =WENN(TEIL(D1;2;1)="x";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)xSVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH); <<Hier kommen dann die anderen abfragen für Division, Addition und Subtraktion)

Ich werde ich aber bis zu 10 Variablen brauchen und dann wird es komplett unübersichtlich.

Multiplizieren ohne die Auslese vom Operator funktioniert bestens. Also: =SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)xSVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH)

Jetzt meine Frage: Wie kann ich den Operator als Operator verwenden, anstatt als String?

Sorry für die kack-Formatierung, aber gutefrage.net lässt einen kaum spielraum für Design, deshalb sind die Sternchen die man ja eigentlich zu multiplizieren gedacht sind durch "x" ersetzt worden

lg Wipeout

Microsoft, Office, Microsoft Excel, programmieren, Office 2007, operator

Meistgelesene Beiträge zum Thema Office