Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel anpassen

Formel anpassen
09.01.2008 11:25:07
Walter
Guten Morgen,
habe dieses Makro:

Sub Makro5()
Dim WkSh_Z     As Worksheet      ' das Empfangs-Workbook - das Ziel
Dim WkSh_Q     As Worksheet
Dim lZeile_Q   As Long
Dim iSpalte_Q  As Integer
Dim iSpalte_Z  As Integer
Dim aZeilen    As Variant
Dim iIndex     As Integer
Set WkSh_Z = Worksheets("3_Verkäuferranking")
Set WkSh_Q = Worksheets("12_Eingabevorlage")
iSpalte_Q = ActiveCell.Column
'die folgende Zeile funktioniert, es wird die Formel hinterlegt:
' Range("B7").FormulaR1C1 = "=+'12_Eingabevorlage'!R[-3]C[6]"
'wollte jetzt automatisch die Formel der Spalte anpassen, klappt nicht:
' Range("B7").FormulaR1C1 = "=+'12_Eingabevorlage'! Cells(7, iSpalte_Z)"
'geht auch nicht
Range("B7").FormulaR1C1 = "=+'WkSh_Z'!.Cells(7, iSpalte_Z)"
End Sub


Vielleicht hat jemand eine Idee, wie man die Formel anpassen könnte?
mfg Walter MB

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel anpassen
09.01.2008 11:30:57
Rudi
Hallo,
so?
Range("B7").FormulaR1C1 = "=+'12_Eingabevorlage'! RC" & iSpalte_Z
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Leider
09.01.2008 11:39:00
Walter
Hallo Rudi,
dies steht drin =+'12_Eingabevorlage'!RC0
leider klappt nicht,
mfg Walter MB

AW: Leider
09.01.2008 12:01:08
Erich
Hallo Walter,
dass da in der Formel am Ende RC0 rauskommt, liegt sicher daran, dass iSpalte_Z Null ist.
Wo belegst du die Variable iSpalte_Z, in der die Zielspalte stehen soll?
Wenn da eine Spaltennummer drin steht, funzt Rudis Vorschlag.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Hallo Erich, Rudi +Renee Habe Erkl...
09.01.2008 12:49:51
Walter
Hallo Zusammen,
habe dieses Makro von Peter F. erhalten, hiermit werden zwar die Werte RICHTIG kopiert,
jedoch nicht die Formeln.
Das Problem ist, wenn ich in der in der Eingabevorlage eine neu Spalte einfüge,
werden halt die Werte in der Rankingtabelle sonst nicht aktuallisiert, angepasst.

Sub Test_Ranking()
Dim WkSh_Z     As Worksheet      ' das Empfangs-Workbook - das Ziel
Dim WkSh_Q     As Worksheet      ' zur bequemeren Schreibweise
Dim lZeile_Q   As Long
Dim iSpalte_Q  As Integer
Dim iSpalte_Z  As Integer
Dim aZeilen    As Variant
Dim iIndex     As Integer
Set WkSh_Z = Worksheets("3_Verkäuferranking")
Set WkSh_Q = Worksheets("12_Eingabevorlage")
aZeilen = Array(4, 6, 7, 10, 11, 12, 16, 34, 35, 18, 19, 25, 26, 27, 29, 30, 31, _
32)
iSpalte_Q = ActiveCell.Column
iSpalte_Z = 2
With WkSh_Q
For iIndex = 0 To UBound(aZeilen)
.Cells(aZeilen(iIndex), iSpalte_Q).Copy
WkSh_Z.Cells(7, iSpalte_Z).PasteSpecial Paste:=xlFormulas          ' Formeln
WkSh_Z.Cells(7, iSpalte_Z).PasteSpecial Paste:=xlValues       ' Werte
iSpalte_Z = iSpalte_Z + 1
Next iIndex
End With
Range("B7").Select
End Sub


Ich hoffe das das Makro sich erklärt.
Ansonsten versuche ich es noch einmal:
Wenn ich in der Eingabevorlage in der H4 (also immer in der aktiven Spalte) bin,
möchte ich von den Zellen (aZellen) siehe oben dies als Formel in die Rankingtabelle von
"B7:R7" reinkopiert wird.
mfg Walter MB

Anzeige
AW: Formel anpassen
09.01.2008 11:32:34
Renee
Hi Walter,
Wenn man wenigstens ein bisschen mehr Information als einen unvollständigen, fehlerhaften Code von dir bekäme, könnte frau/man vielleicht auch bisschen besser helfen. Z.B. was du überhaupt mit dem Code erreichen willst!
aber eben nur ein bisschen...
Greetz Renée

Hier die Erläuterung
09.01.2008 11:47:44
Walter
Hallo Renée,
ich möchte in der aktiven Tabelle ("12_Eingabevorlage") also z.b. in "H4" den Bezug zu in die
Tabelle: ("3_Verkäuferranking") in die Zeile 7 Spalte "B" angefangen herstellen.
So sollte das aussehen: =+'12_Eingabevorlage'!H4
mfg Walter MB

Ich nix verstahn... sorry (owT)...
09.01.2008 11:49:00
Renee

dem kann ich mich nur anschließen
09.01.2008 11:56:00
Rudi

Anzeige
Habe eine Lösung !!! _)
09.01.2008 21:46:32
Walter
Hallo Zusammen,
so ich habe eine Lösung erhalten und das Funktioniert.
Es werden zwar nicht die Formel kopiert, jedoch werden die kompl. Daten NEU
in die Ranking-Tabelle kopiert.
Hier das Makro:

Sub Test_Ranking_Alle()
Dim WkSh_Z     As Worksheet      ' das Empfangs-Workbook - das Ziel
Dim WkSh_Q     As Worksheet      ' zur bequemeren Schreibweise
Dim rZelle     As Range
Dim iStrt_Sp   As Integer
Dim iEnde_Sp   As Integer
Dim lZeile_Q   As Long
Dim lZeile_Z   As Long
Dim iSpalte_Q  As Integer
Dim iSpalte_Z  As Integer
Dim aZeilen    As Variant
Dim iIndex     As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set WkSh_Z = Worksheets("3_Verkäuferranking")
Set WkSh_Q = Worksheets("12_Eingabevorlage")
aZeilen = Array(4, 6, 7, 10, 11, 12, 16, 34, 35, 18, 19, 25, 26, 27, 29, 30, 31, _
32)
With WkSh_Q.Rows(4)
Set rZelle = .Find("zzA", LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iStrt_Sp = rZelle.Column + 1
Else
MsgBox "Der Suchbegriff  ""zzA"" konnte nicht gefunden werden - Abbruch", _
48, "   Hinweis für " & Application.UserName
Exit Sub
End If
Set rZelle = .Find("zzE", LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iEnde_Sp = rZelle.Column - 1
Else
MsgBox "Der Suchbegriff  ""zzE"" konnte nicht gefunden werden - Abbruch", _
48, "   Hinweis für " & Application.UserName
Exit Sub
End If
End With
lZeile_Z = 6  ' die Start-zeile - 1 im Ziel-Blatt
With WkSh_Q
For iSpalte_Q = iStrt_Sp To iEnde_Sp ' alle Verkäufer zwischen zzA und zzE
iSpalte_Z = 2                     ' die Start-Spalte im Ziel-Blatt
lZeile_Z = lZeile_Z + 1           ' die nächste Ausgabezeile errechnen
For iIndex = 0 To UBound(aZeilen) ' alle Zeilen im Array aZeilen
.Cells(aZeilen(iIndex), iSpalte_Q).Copy
WkSh_Z.Cells(lZeile_Z, iSpalte_Z).PasteSpecial Paste:=xlFormulas ' Formeln
WkSh_Z.Cells(lZeile_Z, iSpalte_Z).PasteSpecial Paste:=xlValues   ' Werte
iSpalte_Z = iSpalte_Z + 1
Next iIndex
Next iSpalte_Q
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


mfg Walter MB

Anzeige
AW: Prima!
09.01.2008 21:55:53
Erich
Hallo Walter,
aber dann ging es wohl nicht darum, Formeln zu kopieren...
Noch ein Tipp:
Die Zeile
WkSh_Z.Cells(lZeile_Z, iSpalte_Z).PasteSpecial Paste:=xlFormulas ' Formeln
kannst du weglassen - sie bewirkt nichts,
da der Bereich gleich mit der nächsten Anweisung überschrieben wird (mit konstanten Werten).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Prima! Das Stimmt -)
09.01.2008 21:59:00
Walter
Hallo Erich,
das STIMMT, habe ich schon rausgenommen.
Das Makro läuft zwar ca. 30 sek. da es ca. 86 Spalten sind aber so habe ich halt
auch meine Daten drin.
gruß Walter MB
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige