Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
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
Inhaltsverzeichnis

range ändern

range ändern
tobias
Hi zusammen,
ich habe ein relativ einfaches Problem, das mir dennoch nicht gelingen will.
Ich habe eine Reihe mit Zahlen, die mit einem anderen Sheet verlinkt sind.
Diese Verlinkung auf das andere Sheet soll nun geändert werden, soll sich um eine Spalte nach rechts verschieben.
Ist:
A B C
40 (='Pull!W13) 70(='Pull!W14) 80(='Pull!W15)
Soll:
A B C
43 (='Pull!X13) 73 (='Pull!X14) 83(='PullX15)
Vielen Dank für eure Hilfe,
Gruß,
Tobias
Suchen und Ersetzen
21.08.2009 13:37:16
{Boris}
Hi Tobias,
such nach
'Pull!W
und ersetze durch
'Pull!X
Grüße Boris
AW: range ändern
21.08.2009 13:38:10
Daniel
Hi
versuchs doch mal mit BEARBEITEN - ERSETZEN, um dann "!W" durch "!X" zu ersetzen.
Gruß, Daniel
AW: range ändern
21.08.2009 14:30:19
tobias
Hallo nochmal,
danke erst mal für die Antworten, die Funktionen kenne ich.
Es geht hierbei jedoch um ein Sheet das mit einem Auszug aus dem System verlinkt ist und daher regelmäßig upgedatet wird. Von daher wollte ich gerne einen Button haben der das übernimmt. Dieser Wechsel der Spalten soll dann in Quartal 4 erfolgen.
Sollte als Makro ja nicht mehr als ein paar Zeilen sein. Ich hatte folgendes versucht:
Sub versuch()
Dim cell As Range
Set Bereich = ActiveSheet.Range("C76,E76:I76")
For Each cell In Bereich.Cells
cell.FormulaR1C1 = "='Pull with History data'!R[-63]C[25]"
Next
End Sub

Hierbei verschiebt er jedoch nicht jede Zeile der Reihe um genau eins nach rechts.
Danke und Gruß
Anzeige
Das hat mit Deiner Ursprungsfrage...
21.08.2009 14:34:42
{Boris}
Hi Tobias,
...aber nix zu tun. Da ging es darum, den Blattnamen zu ändern.
Was willst Du also genau erreichen?
Grüße Boris
AW: Das hat mit Deiner Ursprungsfrage...
21.08.2009 14:45:20
tobias
Hi Boris, ok vielleicht war es etwas unklar, versuche noch mal deutlicher zu werden:
Ich habe eine Reihe auf meinem Blatt, die mit einem anderen Arbeitsblatt verlinkt ist, das ein Systemauszug ist.
Die Zahlen in der Reihe sind momentan mit den 3 Quartalszahlen verlinkt, so dass bsp:
Zeile C4 = 'Pull with History dataW14
Zeile D4= 'Pull with History data!'W15
Zeile E4='Pull with History data!'W16
und so weiter....
Daraus soll ganz einfach werden:
Zeile C4 = 'Pull with History dataX14
Zeile D4= 'Pull with History data!'X15
Zeile E4='Pull with History data!'X16
Das heißt, bei der Verlinkung muss sich die Spalte um eins nach rechts verschieben, aus W wird X.
Hoffe das ist verständlicher.
Vielen Dank für die Antworten und sorry für die unverständliche Beschreibung,
Gruß
Tobias
Anzeige
Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 14:50:26
{Boris}
Hi Tobias,
...natürlich ging es auch in der Eingangsfrage bereits um Spalten und nicht um Blattnamen.
Jezt versteh ich aber immer noch nicht, was gegen SUCHEN und ERSETZEN spricht?
Das ist doch völlig simpel und schnell gemacht?!
Grüße Boris
AW: Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 15:02:20
Daniel
HI
das würde ich auch so sehen, daß muss ja nicht so oft geändert werden.
außerdem passt das Makrobeispiel nicht so richtig zu dem Problem
ansonsten, wenn, wie ich vermute die Daten immer aus der letzten Spalte geholt werden sollen, dann könnte man das auch so lösen:
Zeile C4 = 'Pull with History data'!W14
wird zu:
Zeile C4 =Index( 'Pull with History data'!14:14;1;Anzahl2('Pull with History data'!$1:$1)
dann werden die Daten immer aus der letzten gefüllten Spalte im Tabellenblatt "Pull with History data" geholt.
Allerdings darf die Zeile, in der die Anzahl ermittelt wird, keine Leerzellen enthalten.
Gruß, Daniel
Anzeige
AW: Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 15:33:14
tobias
Danke Daniel,
werde es mal versuchen...
AW: Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 15:44:35
tobias
Hey Daniel, es ist aber leider nicht die letzte gefüllte Spalte, es folgen noch weiter Spalten mit Budget und ZielUmsatz....deswegen funktioniert das nicht.
Könnte man das nicht einfach aufbaune auf den code den ich gepostet hab machen?
Viele Grüße
AW: Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 15:57:52
Daniel
hi
kann man schon, aber du solltest mal ne Beispieldatei hochladen,die zeigt wie die Datei vor dem Makrolauf aussieht und wie sie nach dem Makrolauf aussehen soll.
beschreibungen sind in der Regel zu dürftig, um darauf konkrete Makros oder Formeln aufzubauen
außerdem passt dein Beispielmakro irgendwie nicht zu deinen anderen beschreibungen, von daher ist das keine Basis.
Gruß, Daniel
Anzeige
AW: Sorry - jetzt hatte ich Murks geschrieben...
21.08.2009 15:10:31
tobias
Sorry - Chef sagt ausdrücklich er will einen Button und nicht mit Suchen&Ersetzen da rumhantieren...
Hast du ne Idee wie man da ein einfaches makro zu schreiben könnte?
Dann soll Cheffe...
21.08.2009 15:13:28
{Boris}
Hi Tobias,
...es doch selbst machen. Immer das Selbe: Zauberei wird verlangt ("auf Knopfdruck..."), aber Schulungen (oder kostenpflichtige Lösungen) sind zu teuer (ist jetzt nicht gegen Dich gerichtet - Du kannst gar nix dafür).
Am Besten dynamisierst Du die Bezüge - dann braucht Du kein Makro. Dazu hat Daniel Dir schon was geschrieben.
Grüße Boris
Oh Gott, 6x Murks... ;-) Gruß owT
22.08.2009 14:03:45
Luc:-?
:-?
Ersetzen
21.08.2009 13:42:13
Matthias5
Hallo Tobias,
nutze die "Suchen + Ersetzen"-Funktionalität.
Suche: 'Pull!W
Ersetze durch: 'Pull!X
Stelle bei den "Suchen + Ersetzen"-Optionen sicher, das "suchen in: Formeln" aktiviert ist.
Gruß,
Matthias
Anzeige
AW: range ändern
22.08.2009 21:30:46
Gerd
Hallo Tobias,
wenn Du nur solche einfachen Formeln hast:
Sub CommandButton1_Click()
Dim Bereich As Range, Zelle As Range, strQuelle As String
Const Blattname As String = "Pull"
Set Bereich = Columns("A:C").SpecialCells(xlCellTypeFormulas)
For Each Zelle In Bereich
If Mid$(Zelle.Formula, 2, Len(Blattname) + 1) = Blattname & "!" Then
strQuelle = Worksheets(Blattname). _
Range(Split(Zelle.Formula, "!")(1)).Offset(0, 1). _
Address(False, False, xlA1, True)
Zelle.Formula = "=" & strQuelle & ""
End If
Next
End Sub
Gruß Gerd
Anzeige
AW: range ändern
23.08.2009 13:40:06
tobias
Hallo Gerd,
danke für deine Hilfe - das Makro läuft einwandfrei ab, aber in den Zellen ändern sich die Werte nicht wirklich.
Das Problem ist nur ein Auszug aus nem größeren Problem. Vll liegt es daran, dass ich hier nur einen bestimmten Teil geschildert habe.
Ich habe die Originaldatei mit ausführlichen Kommentaren hier hoch geladen:
https://www.herber.de/bbs/user/64004.xls
Vielleicht kannst du ja einen Blick reinwerfen und mir mitteilen, wie ich es für drei Spalten des ersten Blocks (C76-C81), (E76-E81) und (F76-F81) machen muss.
Vielen Dank und einen schönen Sonntag noch!
Gruß
Tobias
Anzeige
AW: range ändern
23.08.2009 21:49:11
Gerd
Hallo Tobias,
die verbundenen Zellen oben musst vorher trennen (Ersatz ggf. Format-Zellen-Ausrichtung Horizontal-TextZentriertüberSpalten) .
Sub CommandButton1_Click() 'im Tabellenblattmodul Scorecard
Dim Bereich As Range, Zelle As Range, strSpalte As String, strSpalteNeu As String
Const Blattname As String = "'Pull with History Data'"
Set Bereich = Range("C76:C81,E76:E81,F76:F81").SpecialCells(xlCellTypeFormulas)
For Each Zelle In Bereich
If InStr(Zelle.Formula, Blattname & "!") > 0 Then
strSpalte = (Mid$(Zelle.Formula, InStr(Zelle.Formula, "!") + 1, 2))
strSpalteNeu = Split(Columns(strSpalte).Offset(0, 1).Address(False, False), ":")(0)
Zelle.Formula = Replace(Zelle.Formula, "!" & strSpalte, "!" & strSpalteNeu)
End If
Next
End Sub
Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige