Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Veknüpfungen - Do Loop

Veknüpfungen - Do Loop
08.05.2008 11:50:12
Becker

Hallo Profis,
ich ersuche um Eure Hilfe:
Aus Tabelle1 kopiere ich Spalten Berech (B100:MX101, das sind alles Summen und Verknüpf. Formel)
nach Tabelle2 (ich nehmen die Zeile G2 dann gehe ich Einfügen-Verknüpfungen einfügen). In Tabelle2 habe ich jetzt die Verknüpfungen aus Tebelle1 (in Horizontale Ebene).
Gibt es eine Möglichkeit mit Hilfe VBA das man in Tabelle2 die Verknüpfungen ins Vertikale Ebene hinbekomt?
Mit normalen Daten (ohne Formel und Verknüpfungen) benutzt man Transponieren. So da ich die Formel und die Verknüpfungen weiterhin benutzen will, aber in andere Reihen Folge (Vertikale) da kenne ich nur die Copy und Paste Methode.
Kann so was die Do Loop Schleife (bin der Anfänger) erledigen. Beispiel in Tabelle2 habe ich die Verknüpfungen (G2:ND3);
G2 ist Wert "15" (das ist die Summen Formel aus Tabelle1)
G3 ist Daten Name "XY" (das ist die Verknüpfung aus Tabelle1)
H2 ist Wert "22" (das ist die Summen Formel aus Tabelle1)
H3 ist Daten Name "YC" (das ist die Verknüpfung aus Tabelle1)
I2 ist Wert "33" (das ist die Summen Formel aus Tabelle1)
I3 ist Daten Name "XYA" (das ist die Verknüpfung aus Tabelle1)
Wie kann man die Verknüpfung von G2(nach SpalteA) und G3(nach SpalteB) ins erste freie Spalte hintbringen(von A1:F ist freier Bereich). Alle Verknüpfungen in Zeile 3 sollen ins Spalte A (von horizont. nach vertikale Ebene) und alle Verknüpfungen aus Zeile "2" sollen ins Spalte B (von horizont. nach vertikale Ebene); so sollte aussehen
Spalte A(Daten) Spalte B(Werte)
A1 "XY" (aus G3) B1 "15" (aus G2)
A2 "YC" (aus H3) B2 "22" (aus H2)
A3 "XYA" (aus I3) B3 "33" (aus I2)
Für jeder Lösung und Hilfe bin ich sehr dankbar.
Netten Gruß
Daniel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Veknüpfungen - Do Loop
08.05.2008 15:29:50
fcs
Hallo Daniel,
Per Formel könnte man noch mit der Funktion INDIREKT
in Zelle A2
=INDIREKT("'Tabelle1'!Z" & SPALTE()+99 & "S" & ZEILE();FALSCH)
dann nach unten und Rechts kopieren
oder der Matrix-Formel MTRANS arbeiten.
Makrolösung:


Sub TransponierenG2_XXX3()
Dim Bereich As Range, startZelle As String, Zelle As Range, wks As Worksheet
Dim start As Long, spalte As Long
startZelle = "A2"
Set wks = ActiveSheet
With wks
'Bereich G2 bis zur letzten Spalte in Zeile 3
Set Bereich = .Range(.Cells(2, 7), .Cells(3, .Columns.Count).End(xlToLeft))
'Zellen im Bereich ausschneiden und ab Startzelle wieder einfügen
For zeile = 1 To Bereich.Rows.Count
For spalte = 1 To Bereich.Columns.Count
Bereich(zeile, spalte).Cut Destination:=.Range(startZelle).Offset(spalte - 1, zeile - 1)
Next
Next
End With
End Sub


Gruß
Franz

Anzeige
AW: Veknüpfungen - Do Loop
08.05.2008 22:10:19
Becker
Hallo FCS,
Man Respekt, herzlichen Dank. Du bist echt Spitze gleich zwei Lösungen.Habe gleich alles ausprobiert funktioniert tadellos.
Meine letzte Frage zu Deine Super Formel; was muss hier verändern das ich den Wert z.B. aus Spalte G2/bzw B110 Tebelle1/ "15" ins Spalte B2 (Tabelle2)bekomme und der Name von G3/B101 Tabelle1/ "XY" ins A2?Das gleiche was Du gemacht hast nur umgekehrt.
=INDIREKT("'Tabelle1'!Z" & SPALTE()+99 & "S" & ZEILE();FALSCH)
Habe probiert die Spalte mit Formel zum tauschen aber das geht ja nicht.
Danke Dir für Deine Bemühnungen und super Lösungen.
Das hier ist der beste Forum und die besten Profis, ich dank Euch.
Gruß
Daniel

Anzeige
AW: Veknüpfungen - Do Loop
09.05.2008 04:59:46
fcs
Hallo Daniel,
das tauschen der Formeln in den Spalten A und B funktioniert hier nicht. Da für die Berechnung der Quell-Zelladresse sich der Startwert der Zeile in der Formel ändert (SPALTE()). Für die Spalten A und B muss jeweils ein anderer Wert zur SPALTE() der Zelle addiert werden, damit der Wert aus der richtigen Zeile in Tabelle1 geholt wird.


Tabellenblattname: Tabelle2
A        B
2  Z101S2   Z100S2
Benutzte Formeln:
A2:  =INDIREKT("'Tabelle1'!Z" & SPALTE()+100 & "S" & ZEILE();FALSCH)
B2:  =INDIREKT("'Tabelle1'!Z" & SPALTE()+98 & "S" & ZEILE();FALSCH)
oder etwas allgemeinere Formeln:
A2:  =INDIREKT("'Tabelle1'!Z" & SPALTE()+ZEILE(Tabelle1!$B$101)-SPALTE(A$2)
& "S" & ZEILE()+SPALTE(Tabelle1!$B$101)-ZEILE(A$2);FALSCH)
B2:  =INDIREKT("'Tabelle1'!Z" & SPALTE()+ZEILE(Tabelle1!$B$100)-SPALTE(B$2)
& "S" & ZEILE()+SPALTE(Tabelle1!$B$100)-ZEILE(B$2);FALSCH)

Diese Formeln dann nach unten kopieren.
Bei der allgemeineren Formel können in Tabelle1 dann auch Zeilen eingefügt/gelöscht werden und die Formel in Tabelle 2 passt sich automatisch an.
Die Makro-Lösung ändert sich dann wie folgt, damit die Zeilen in der gewünschten Reihenfolge in den Spalten A und B übernommen werden.
Gruß
Franz


Sub TransponierenG2_XXX3()
Dim Bereich As Range, startZelle As String, Zelle As Range, wks As Worksheet
Dim zeile As Long, spalte As Long, lngOffset As Long
startZelle = "A2"
Set wks = ActiveSheet
With wks
'Bereich G2 bis zur letzten Spalte in Zeile 3
Set Bereich = .Range(.Cells(2, 7), .Cells(3, .Columns.Count).End(xlToLeft))
'Zellen im Bereich ausschneiden und ab Startzelle wieder einfügen beginnen mit letzter Zeile
For zeile = 1 To Bereich.Rows.Count
For spalte = 1 To Bereich.Columns.Count
Select Case zeile
Case 1 '1. Zeile in Spalte rechts neben der Startzelle einfügen
lngOffset = 1
Case 2 '2. Zeile in Spalte der Startzelle einfügen
lngOffset = 0
Case Else
lngOffset = zeile - 1
End Select
Bereich(zeile, spalte).Cut Destination:=.Range(startZelle).Offset(spalte - 1, lngOffset)
Next
Next
End With
End Sub


Anzeige
AW: Veknüpfungen - Do Loop
09.05.2008 13:00:26
Becker
Hallo Meister Franz,
Ich glaube tausend mal Danke zu schreiben ist zu wenig. Ich bewundere Deine Leistung.
Bin sprachlos, Danke dir.
Gruß
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige