Formel in Werte. Makierung nur Oben zulässig

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Formel in Werte. Makierung nur Oben zulässig
von: Felix s.
Geschrieben am: 28.05.2015 14:25:27

Hallo die Herren und Damen,
Ich hab folgende function.


Function AusFormelWertMachen()
If AllesFormeln Then
  Selection.Copy
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(0, -1).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Else
    MsgBox "Im markierten Bereich befindet sich eine oder mehrere Zelle(n) die keine Formel  _
beinhaltet!", vbCritical, "Kritischer Fehler. Vorgang wurde abgebrochen!"
End If
End Function

Diese Kopiert mir einfach den Makierten Bereicht nach Rechts und überschreibt den Kopierten BEreich mit Werten. Allerdings nur wenn nur Formel markiert sind.
Das funktioniert auch alles so wie gewollt.
Einziges Problem aktuell wenn der User von unten nach Oben Kopiert also in Zelle A5 anfängt und bis A1 geht. Kopiert er die Werte in B5-B10 und nicht in B1-B5...
Wie kann ich dies verhindern? Bzw eine Fehlerbehandlung einbauen?
Habe mir schon überlegt das ich einfach die "Range" umdrehe falls der höchste Wert als erstes kommt. Bekomme aber den makierten Bereich nicht ausgeben also die Zellen die betroffen sind.
Bei bspw. MsgBOx Selection --> Typenunverträglichkeit, Bei Selection.Copy bekomme ich logischerweiße nur "WAHR" da mir VBA nur Bestätigt ob die Kopierprozess erfolgreich war oder nicht.
Über eine oder gar mehrere Antworten würde ich mich sehr freuen :). Vielen Dank.

Bild

Betrifft: AW: Formel in Werte. Makierung nur Oben zulässig
von: Jürgen V.
Geschrieben am: 28.05.2015 17:26:17
Hallo Felix,
das sollte Dein Problem lösen:

Function AusFormelWertMachen()
If AllesFormeln Then
   Selection.Offset(0, 1).Formula = Selection.Formula
   Selection.Value = Selection.Value
Else
   MsgBox "Im markierten Bereich befindet sich eine oder mehrere Zelle(n) die keine Formel  _
beinhaltet!", vbCritical, "Kritischer Fehler. Vorgang wurde abgebrochen!"
End If
End Function 
Gruß, Jürgen

Bild

Betrifft: AW: Formel in Werte. Makierung nur Oben zulässig
von: Klexy
Geschrieben am: 28.05.2015 18:06:36
Frage: was soll das Range("A1") in ActiveCell.Offset(0, 1).Range("A1").Select ?
Ansonsten statt
ActiveCell.Offset(0, 1).Select
folgendes:
Selection(1).Offset(0, 1).Select

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formel in Werte. Makierung nur Oben zulässig"