Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: relative Bezüge in absolute Bezüg ändern per Makro

relative Bezüge in absolute Bezüg ändern per Makro
04.08.2015 18:33:16
Rose
Hallo Excel Profis!
Ich hoffe Ihr könnt mir bitte helfen!
Folgendes Problem: Ich habe eine Tabelle erstellt, die automatisch den Personen die an einer bestimmten Sportgruppe teilnehmen die vorgesehene Uhrzeit wiedergibt. Folgenden Formeln habe ich dafür verwendet:
=WENN(ISTNV(SVERWEIS('Sportgruppen Gefangene'!$F12;Sportplan!$J$29:$K$40;2;0));""; SVERWEIS('Sportgruppen Gefangene'!$F12;Sportplan!$J$29:$K$40;2;0))
=WENN(ISTNV(SVERWEIS('Sportgruppen Gefangene'!$F13;Sportplan!$J$29:$K$40;2;0));""; SVERWEIS('Sportgruppen Gefangene'!$F13;Sportplan!$J$29:$K$40;2;0))
=WENN(ISTNV(SVERWEIS('Sportgruppen Gefangene'!$F14;Sportplan!$J$29:$K$40;2;0));""; SVERWEIS('Sportgruppen Gefangene'!$F14;Sportplan!$J$29:$K$40;2;0))
usw...
Zum Verständnis:
In der Liste Sportgruppen wird der Person ihre persönliche Sportgruppe zugeordnet an der sie teilnimmt. Der Sportplan beinhaltet an welchen Tagen welche Sportgruppen stattfinden und die jeweiligen Uhrzeiten.
Einige Zellenbezüge sind relativ (oben fett markiert) diese sollen aber per Makro in absolute umgeändert werden, da es für die Ordnungsgemäße Funktion der Tabelle unabdingbar ist, da ich mit Filtern arbeite und sich sonst alles verschiebt und nichts mehr stimmt. Ich habe schon mehrere Versionen von Makros die man im Netz finden konnte ausprobiert.
Wie z.B.
Sub KonvertiereRelativZuAbsolut()
Dim Zelle As Range
For Each Zelle In Selection
With Zelle
If .HasFormula Then .Formula = _
Application.ConvertFormula(.Formula, _
xlA1, xlA1, xlAbsolute, Zelle)
End With
Next Zelle
End Sub
Bei allen Versuchen löscht mir Excel aber die Formeln und gibt den Fehler #WERT! zurück.
Der umgekehrte Fall funktioniert lustiger Weise, also mit einem Makro alles in relative umzuwandeln.
Es handelt sich dabei um 3 Spalten und Einträge bis zur 570. Zeile. Also per Hand alles mit F4 zu ändern eine Menge Arbeit!
Das nächste Problem was die Sache noch erschwert ist, dass ich diese Tabelle aus Datenschutzgründen leider nicht veröffentlichen darf!
Werde aber soweit es geht versuchen gewünschte Informationen zur Verfügung zu stellen!
Ich hoffe trotzdem das Ihr mir irgendwie helfen könnt!
Mfg Bastian

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: relative Bezüge in absolute Bezüg ändern per
04.08.2015 18:41:42
Daniel
Hi
die Spalte ist ja schon absolut.
Um auch die Zeilen absolut zu machen, könntest du mit der ERSETZEN-Funktion das !$F durch !$F$ ersetzen.
damit wird dann das $ vor die Zeilennummer geschrieben und dein Zellbezug wird absolut.
Gruß Daniel

Anderenfalls könntest du es ja auch so ...
04.08.2015 19:45:44
Luc:-?
…probieren, Bastian,
weil es evtl an dem von Daniel genannten Grund liegen mag (was eigentl nicht der Fall sein sollte!), wenn's denn umgekehrt fktioniert:
.Formula = Application.ConvertFormula(.FormulaR1C1, xlR1C1, xlA1, xlAbsolute, Zelle)
Falls das auch nicht fktionieren sollte, bleibt dir immer noch Daniels Vorschlag, den du auch in VBA umsetzen könntest.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: relative Bezüge in absolute Bezüg ändern per Makro
05.08.2015 06:29:42
Rose
Ihr seid echt die Kings :-) Danke für eure schnelle Antwort! Hab nicht damit gerechnet das es sooo schnell geht! Der Vorschlag von Luc hatte leider nicht geklappt, kam wieder der Fehler #WERT!. Aber mit ersetzen hat es wunderbar funktioniert!
1000 Dank nochmal an euch beiden!
Mfg Bastian
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Relative Bezüge in Absolute Bezüge Ändern


Schritt-für-Schritt-Anleitung

Um in Excel relative Bezüge in absolute Bezüge zu ändern, kannst du ein Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Tabelle, in der du die Bezüge ändern möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul hinzuzufügen.

  4. Füge den folgenden VBA-Code ein:

    Sub KonvertiereRelativZuAbsolut()
       Dim Zelle As Range
       For Each Zelle In Selection
           With Zelle
               If .HasFormula Then .Formula = _
               Application.ConvertFormula(.Formula, _
               xlA1, xlA1, xlAbsolute, Zelle)
           End With
       Next Zelle
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

  6. Wähle die Zellen aus, in denen du die Bezüge ändern möchtest.

  7. Drücke ALT + F8, wähle das Makro KonvertiereRelativZuAbsolut aus und klicke auf Ausführen.

Jetzt sollten die relativen Bezüge in absolute Bezüge umgewandelt werden.


Häufige Fehler und Lösungen

  • Fehler #WERT!: Wenn du beim Ausführen des Makros den Fehler #WERT! erhältst, könnte es daran liegen, dass die Formeln entweder nicht korrekt sind oder dass die Zellen, die du ausgewählt hast, keine Formeln enthalten. Stelle sicher, dass die ausgewählten Zellen tatsächlich Formeln haben.

  • Formeln werden gelöscht: Wenn das Makro die Formeln löscht, vergewissere dich, dass du die richtige Syntax im Code verwendest, insbesondere die Verwendung von Application.ConvertFormula.


Alternative Methoden

Falls du die Makro-Methode bevorzugst, gibt es auch eine alternative Lösung:

  1. Verwende die ERSETZEN-Funktion: Du kannst die ERSETZEN-Funktion in Excel verwenden, um das $-Zeichen vor den Zeilenbezug zu setzen. Beispiel:

    =ERSETZEN(A1;FINDEN("!$F";A1);3;"!$F$")
  2. Manuelle Umwandlung: Du kannst auch einfach die Zelle auswählen und mit der F4-Taste die Bezüge manuell in absolute Bezüge umwandeln.


Praktische Beispiele

Angenommen, du hast folgende Formel in Zelle A1:

=SVERWEIS(B1;C1:D10;2;FALSE)

Um die Bezüge in absolute Bezüge zu ändern, kannst du die Formel wie folgt anpassen:

=SVERWEIS($B$1;$C$1:$D$10;2;FALSE)

Verwende das oben angegebene Makro oder die ERSETZEN-Funktion, um diese Umwandlung schnell in mehreren Zellen durchzuführen.


Tipps für Profis

  • Verwende die Funktion INDIREKT: Wenn du dynamische absolute Bezüge benötigst, könnte die Funktion INDIREKT hilfreich sein, um die Bezüge zu steuern, ohne sie manuell ändern zu müssen.

  • Teste dein Makro: Bevor du das Makro auf eine große Datenmenge anwendest, teste es an einer kleinen Auswahl, um sicherzustellen, dass es wie gewünscht funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich alle Bezüge in einem Arbeitsblatt in absolute Bezüge umwandeln?
Du kannst das oben beschriebene Makro verwenden und einfach die gesamte Tabelle auswählen, bevor du das Makro ausführst.

2. Was sind der Unterschied zwischen absoluten und relativen Bezügen in Excel?
Absolute Bezüge bleiben unverändert, wenn du die Formel kopierst, während relative Bezüge sich entsprechend der neuen Position anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige