Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
596to600
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
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Transponieren mit Verknüpfung per VBA

Transponieren mit Verknüpfung per VBA
13.04.2005 15:17:06
Janine
Hallo Profis,
ich möchte eine Tabelle transponieren.
Dabei soll die erste Zeile aus Tabellenblatt 1 in die erste Spalte von Tabellenblatt 2 kopiert werden. Das wäre einfach!
Die Dateien sollen aber nicht kopiert werden, sondern Blatt 2 soll mit Blatt 1 verknüpft werden.
Und die Zeile aus Blatt 1 soll nicht komplett verknüpft werden, sondern nur der Wert aus jeder zweiten Spalte.
D.h. aus Blatt1, Zeile1: A1 B1 C1 D1 E1 F1 G1...
wird
Blatt 2, Spalte 1:
A1
C1
E1
G1
... (aber verknüpft).
Das Ganze muss eine VBA-Lösung werden und der Makro sollte dabei so gestaltet sein, dass ich Quellzeile und Zielspalte sowie das Intervall manuell verändern kann.
Ich habe jetzt schon eine Weile im Forum gesucht und gebastelt aber es klappt leider alles nicht.
Ich hoffe, mein Problem ist verständlich und jemand weiß Rat.
Tausend Dank im Voraus,
Janine

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Transponieren mit Verknüpfung per VBA
13.04.2005 17:24:47
Janine
Ich fürchte, ich muss mein Problem noch mal umformulieren.
Ich will einfach nur per Makro Spalte "A" im Tabellenblatt1 mit jeder zweiten Zelle von Zeile 1 im Tabellenblatt2 verknüpfen.
Den Makro kann ich dann hinterher selber so editieren, dass ich auch andere Spalten und Zeilen miteinander verknüpfen kann.
Ich ärger mich selber, weil ich weiß, dass es nicht schwer ist aber ich kriege es einfach nicht hin!
Danke für die Hilfe,
Janine
AW: Transponieren mit Verknüpfung per VBA
13.04.2005 21:33:51
Ceyser
Hi Janine,
hier ist ein Beispielmappe: https://www.herber.de/bbs/user/21120.xls
Gruß
CS
Anzeige
AW: Transponieren mit Verknüpfung per VBA
13.04.2005 21:36:02
Harry
Hallo Janine,
meinst du vielleicht so was in der Art?
Ein Beispiel:
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Dieses Makro ins Tabellenblatt-Modul für "Tabelle2":
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zahl
Dim vzahl As Integer
Dim n As Long
eingabe:
zahl = InputBox("Geben Sie einen Wert ein:", "Anzahl Verknüpfungen")
If Not IsNumeric(zahl) Then
MsgBox "Dies ist keine gültige Zahl!"
GoTo eingabe
End If
vzahl = zahl
If vzahl = 0 Or vzahl > 127 Then
MsgBox "Zahl liegt ausserhalb des gültigen Bereichs!"
GoTo eingabe
End If
ActiveCell.FormulaR1C1 = "=Tabelle1!RC"
For n = 1 To vzahl
ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & " & Tabelle1!RC[" & 2 * n & "]"
Next n
End Sub

Gruss Harry
Anzeige
AW: Transponieren mit Verknüpfung per VBA
14.04.2005 21:46:55
Harry
Hi Janine,
hatte gestern deine Frage wohl komplett missverstanden - sorry :-|...
hab da was getestet, was dir vielleicht weiterhelfen könnte:
Option Explicit

Sub Verknüpfungen_einfügen()
Dim Quellzeile As Integer
Dim Zielspalte As Integer
Dim i, n, Intervall As Integer
Dim vQuellzeile, vZielspalte, vIntervall
Sheets("Tabelle2").Select
eingabe1:
vQuellzeile = InputBox("Bitte Wert eingeben:", "Quellzeile (Zeilennummer)")
If Not IsNumeric(vQuellzeile) Then
MsgBox "Dies ist keine gültige Quellzeile!", vbExclamation, "Zahl"
GoTo eingabe1
End If
Quellzeile = vQuellzeile
If Quellzeile = 0 Or Quellzeile > 65536 Then
MsgBox "Quellzeile liegt ausserhalb des gültigen Bereichs!", vbCritical, _
"Bereich: Zeile 1 bis max. 65536"
GoTo eingabe1
End If
eingabe2:
vZielspalte = InputBox("Bitte Wert eingeben (z.B.: 1 für Sp. A, 2 für Sp. B, u.s.w...):", _
"Zielspalte (Spaltennummer)")
If Not IsNumeric(vZielspalte) Then
MsgBox "Dies ist keine gültige Zielspaltennummer!", vbExclamation, "Zahl"
GoTo eingabe2
End If
Zielspalte = vZielspalte
If Zielspalte = 0 Or Zielspalte > 256 Then
MsgBox "Quellzeile liegt ausserhalb des gültigen Bereichs!", vbCritical, _
"Bereich: Spalte 1 bis max. 256"
GoTo eingabe2
End If
eingabe3:
vIntervall = InputBox("Bitte Wert eingeben:", "Intervall")
If Not IsNumeric(vIntervall) Then
MsgBox "Dies ist kein gültiges Intervall!", vbExclamation, "Zahl"
GoTo eingabe3
End If
Intervall = vIntervall
If Intervall = 0 Or Zielspalte * Intervall > 256 Then
MsgBox "Das Intervall liegt ausserhalb des gültigen Bereichs!"
GoTo eingabe3
End If
MsgBox "Quellzeile = " & Quellzeile & ", Zielpalte = " & Zielspalte & ", Intervall = " & _
Intervall, vbOKOnly, "Verknüpfungen einfügen"
Cells(1, Zielspalte).Value = _
"=Tabelle1!" & Worksheets("Tabelle1").Cells(Quellzeile, 1).Address
i = 255
For n = 1 To i
If n * Intervall > i Then
Exit For
End If
Cells(1 + n, Zielspalte).Value = _
"=Tabelle1!" & Worksheets("Tabelle1").Cells(Quellzeile, 1 + n * Intervall).Address
Next n
End Sub

...könnte funzen, falls du dich noch mal hier her "verirrst" ;-)
Gruss
Harry
Anzeige
AW: Transponieren mit Verknüpfung per VBA
15.04.2005 15:56:02
Janine
Hallo Harry,
ich muss mich bei Dir echt entschuldigen. Ich habe irgendwie nicht ausdrücken können, was ich wollte und war leider ein paar Tage nicht am Computer.
Im Endeffekt habe ich nur folgende total simple Lösung gesucht:

Sub Transponieren()
j = 3
For i = 16 To 300
tabelle2.Cells(j, 4).Formula = "=tabelle1!" & Cells(348, i).Address(False, False)
i = i + 3
j = j + 1
Next i
End Sub

Mit dem "manuell editieren" meinte ich nur, dass ich hinterher den Code selber ändern kann.
Dennoch danke, für Deine viele Mühe! Ich finde es super, dass sich hier Leute wirklich intensivst mit den Problemen anderer beschäftigen!!!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige