Thema Datum  Von Nutzer Rating
Antwort
17.08.2014 22:58:27 wishless
NotSolved
18.08.2014 00:10:58 Eisbär
NotSolved
18.08.2014 09:10:26 wishless
NotSolved
18.08.2014 09:14:13 wishless
NotSolved
Rot [VBA] Excel formatierte Tabelle aus Datensatz erzeugen
18.08.2014 21:20:57 Eisbär
NotSolved
21.08.2014 22:21:17 wishless
Solved
17.09.2014 16:21:09 wishless
Solved

Ansicht des Beitrags:
Von:
Eisbär
Datum:
18.08.2014 21:20:57
Views:
771
Rating: Antwort:
  Ja
Thema:
[VBA] Excel formatierte Tabelle aus Datensatz erzeugen

Hallo wishless !

Versuch doch das mal hier :

 

Sub WertAusTabelleInZiel()
 
'Variablen deklarieren
'Bei großen Datenmengen kannst du erheblich an Speicherplatz sparen, wobei
'>Dim DateiName$< das Gleiche ist wie : >Dim DateiName as String<
'>Dim ZeileQuelle&< das Gleiche ist wie : >Dim ZeileQuelle as Long<, usw . . .
'Siehe auch : Excel Hilfe > Datentypen (Zusammenfassung)
'Außerdem vertippst du dich nicht, wenn du Groß- und Kleinbuchstaben verwendest
'(Im Code immer kleinschreiben, wenn nach 'verlassen' der Zeile nicht 'VerLassen' da steht,
'hast du dich mit der Variablen vertippt - funktionier richtig aber nur nach der Deklaration).
 
Dim DateiName$, TabellenBlattQuelle$, TabellenBlattZiel$, SpalteBuchstabeZiel$, ZielZelle$
Dim ZeileStartQuelle&
Dim ZeileQuelle&, SpalteQuelle&, ZeileZiel&, SpalteZiel&
Dim AlleZeilenQuelle&, AlleSpaltenQuelle&, DatenSatzSprung&, ZeileVorschub&
Dim J&, K&                                  'Variablen für die Schleifen
Dim QuellDaten(28)                          'Hier aufpassen, wenn AlleSpaltenQuelle sich ändert
                                            'bei kleiner egal, bei größer bitte anpassen
 
'!!!!!!!!!!! Diese Daten unbedingt noch anpassen !!!!!!!!!!!!!
'Variablen vordefinieren
DateiName$ = "wishless.xlsm"                'Hier den Dateinamen einsetzen, den du verwendest
TabellenBlattQuelle$ = "Tabelle1"             'Hier ändern, wenn dein Tabellenblatt anders heißt
TabellenBlattZiel$ = "Tabelle2"             'Hier ändern, wenn dein Tabellenblatt anders heißt
 
ZeileStartQuelle& = 2                       'Nur zu Demozwecken, dein Wert wahrscheinlich >1<
AlleZeilenQuelle& = 10                      'Anzahl der zu bearbeitenden Zeilen, dein Wert ???
                                            'Hier kannst du auch 100.000 oder so eingeben
 
 
'Hier nur Änderungen vornehmen, wenn sich deine Datenbereiche in Quelle und/oder Ziel ändern
ZeileZiel& = 2
SpalteZiel& = 4
AlleSpaltenQuelle& = 28                     '=Anzahl Spalten A - AB
DatenSatzSprung& = 21                       'Zeilen im Ziel von 1. - letzter Zeile des Datensatzes
 
'!!!!!!!!!!!!!!!!!!!!!Achtung!!!!!!!!!!!!!!!!!!!!!!!!
'Funktionoert nicht, wenn du in den Codes auf zu berechnende Werte zugreifen willst
'Dann jedesmal ausschalten (und hinterher wieder einschalten) oder ggf. ganz weglassen !
Application.Calculation = xlCalculationManual   'Berechnung aus - nur damit es schneller geht
 
 
 
'Daten lesen und schreiben
'in der Folge eingetragene Zahlen können auch als Variable deklariert werden, wenn nötig
For J& = ZeileStartQuelle& To AlleZeilenQuelle&
 
    For K& = 1 To AlleSpaltenQuelle& - 1
        ZeileQuelle& = J&
        SpalteQuelle& = K&
        ZeileZiel& = ((J& * DatenSatzSprung&) - DatenSatzSprung& + 1) + K& + ZeileVorschub&
        If SpalteQuelle& = 5 Then
            ZeileVorschub& = ZeileVorschub& - 4
            ZeileZiel& = ZeileZiel& - 4
            SpalteZiel& = SpalteZiel& + 3
        ElseIf SpalteQuelle = 7 Then
            ZeileVorschub& = ZeileVorschub& + 1
            ZeileZiel& = ZeileZiel& + 1
            ElseIf SpalteQuelle = 9 Then
            ZeileVorschub& = ZeileVorschub& + 3
            ZeileZiel& = ZeileZiel& + 3
            SpalteZiel& = SpalteZiel& - 4
        ElseIf SpalteQuelle = 19 Then
            ZeileVorschub& = ZeileVorschub& - 10
            ZeileZiel& = ZeileZiel& - 10
            SpalteZiel& = SpalteZiel& + 2
        End If
        SpalteBuchstabeZiel$ = Split(Columns(SpalteZiel&).Address(0, 0), ":")(0)
        ZielZelle$ = SpalteBuchstabeZiel$ & ZeileZiel&
        Range(ZielZelle) = Workbooks(DateiName$).Worksheets(TabellenBlattQuelle$).Cells(ZeileQuelle&, SpalteQuelle&)
    Next K&
    
    ZeileVorschub& = 0
    SpalteZiel& = 4
 
Next J&
 
 
Application.Calculation = xlCalculationAutomatic 'Ende schneller gehen
 
End Sub
 
 
 
Bitte nicht vergessen auf deine Bedürfnisse anzupassen = siehe Anmerkungen !!!!
 
Viel Spaß damit, ich hoffe ich konnte helfen.
 
 
Gruß
 
Eisbär
 

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.08.2014 22:58:27 wishless
NotSolved
18.08.2014 00:10:58 Eisbär
NotSolved
18.08.2014 09:10:26 wishless
NotSolved
18.08.2014 09:14:13 wishless
NotSolved
Rot [VBA] Excel formatierte Tabelle aus Datensatz erzeugen
18.08.2014 21:20:57 Eisbär
NotSolved
21.08.2014 22:21:17 wishless
Solved
17.09.2014 16:21:09 wishless
Solved