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

Auf Spalten beziehen!!!

Auf Spalten beziehen!!!
11.01.2005 13:50:50
Nadi
Hallöchen,
wie geht es denn die unten stehende Formel so umzuschreiben, dass sie inhaltlich quasi Folgendes aussagt?:
ActiveCell.FormulaR1C1 = "=RC[1]VON SPALTE DIE "X" HEIßT-RC[2]VON SPALTE DIE "Y" HEIßT"
Damit will ich bewirken, dass die Formel auch dann funktioniert, wenn die beiden Spalten, deren Werte subtrahiert werden sollen, nicht unmittelbar nebeneinander stehen.
Ich hoffe auf Hilfe.
Dank vorab.
Gruss Nadi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auf Spalten beziehen!!!
Martin
Hallo Nadi,
da gibt es verschiedene Möglichkeiten. Wo kommen denn X und Y her?
Da es wohl um die Anpassung von aufgezeichnetem Code geht, wäre es am sinnvollsten, Du postest mal den kompletten Code.
Gruß
Martin Beck
AW: Auf Spalten beziehen!!!
Nadi
Hallöchen,
hier ist er! Aber das Problem ist dass das Grundgerüst so auf jeden Fall bestehen bleiben muss! Mir geht es im Moment wirklich nur um die Sache mit den Spalten und der Formel!!

Sub Test_Gewichte()
'Nach der Spalte "Gross weight" suchen und anschließend diese selektieren
'und eine neue Spalte einfügen
Cells.Find(what:="Gross weight", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Selection.EntireColumn.Insert
'Nach der Spalte "Gross weight" suchen und anschließen diese selektieren
'und das Format von dieser in die neu eingefügte übertragen
Cells.Find(what:="Gross weight", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.EntireColumn.Select
Selection.Copy
If Not ActiveCell.Column = 1 Then ActiveCell.Offset(0, -1).Columns(1).EntireColumn.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
'Neuer Spalte eine Überschrift geben
ActiveCell.FormulaR1C1 = "Diff. Gross Net"
ActiveCell.Select
'Farbe der Spaltenüberschrift ändern
Selection.Font.ColorIndex = 7
'In die 2. Zeile in dieser Spalte springen
ActiveCell.Rows(2).Select
'Berechnung durchführen: Gross weight - Net weight
ActiveCell.FormulaR1C1 = "=RC[1]-RC[2]"
'Aktive Zelle (Formel) wird soweit nach unten kopiert, wie die Spalte rechts daneben gefüllt ist.
'Da in der rechten Spalte manchmal auch leere Zellen auftauchen, wird außerdem noch nach der
'letzten beschriebenen Zell von unten gesucht. Denn sonst würde das Kopieren der Formel
'bei jeder leeren Zelle stoppen.
Selection.AutoFill Destination:=Range(Selection, Cells(65536, Selection.Column + 1).End(xlUp).Offset(0, -1))
End Sub

Ciao, Nadi
Anzeige
AW: Auf Spalten beziehen!!!
Martin
Hallo Nadi,
auweia, der Code ist hart. Die vielen Selects und Activates sind nicht nur unnötig, sondern erschweren das Verständnis erheblich. Ich habe den Code mal etwas vereinfacht.
Das Hauptproblem ist allerdings, daß Du uns verschweigst,
1. wo die Spalten "herkommen", die in die Berechnung eingehen.
2. ob in der neuen Spalte wirklich Formeln stehen müssen oder ob das berechnete Ergebnis ausreicht (letzteres wäre einfacher).
Hier mal der angepaßte Code:

Sub Test_Gewichte()
'Nach der Spalte "Gross weight" suchen und Spaltennummer in Variable Sp abspeichern
Sp = Cells.Find(what:="Gross weight", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Column
'Letzte besetzte Zelle in der Spalte Sp ermitteln
z = Cells(65536, Sp).End(xlUp).Row
'eine neue Spalte einfügen
Cells(1, Sp).EntireColumn.Insert
' das Format von der ursprünglichen in die neu eingefügte Spalte übertragen
ActiveSheet.Columns(Sp + 1).Copy
ActiveSheet.Columns(Sp).PasteSpecial Paste:=xlFormats
'Neuer Spalte eine Überschrift geben
Cells(1, Sp) = "Diff. Gross Net"
'Farbe der Spaltenüberschrift ändern
Cells(1, Sp).Font.ColorIndex = 7
'Spalten für Berechnung festlegen
SpalteX = "B"
SpalteY = "C"
'Berechnung durchführen: Gross weight - Net weight
Cells(2, Sp).Formula = "=" & SpalteX & "2+" & SpalteY & "2"
'Formel wird soweit nach unten kopiert, wie die Spalte rechts daneben gefüllt ist.
Cells(2, Sp).Copy Destination:=Range(Cells(2, Sp), Cells(z, Sp))
End Sub

Gruß
Martin Beck
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige