Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Problem mit verschieben | Herbers Excel-Forum


Betrifft: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 18:52:41

Hallo Leute!
Also man kann ein Bereich verschieben
jedoch gehen auch alle Formeln mit die in diesem Bereich sind!

Sub bereich_verschieben()
Dim z As Long
   z = Cells(Rows.Count, 1) + 2
  Range("A" & z & ":C" & z).Insert shift:=xlDown
End Sub



Ich möchte jedoch nur die Ergebnisse verschieben(retten).
Wer könnte helfen??
Grüße
Rolf

  

Betrifft: AW: Problem mit verschieben von: chris b.
Geschrieben am: 21.10.2008 19:07:46

Hallo Rolf,

Was soll mit den Formeln in dieser Tabelle passieren ?
Wie sieht deine Tabelle aus.Hast du eine Beispielmappe ?

gruß Chris

P.s Du könntest nämlich versuchen die Formeln in deiner Mappe durch Werte zu ersetzen indem Du sie kopierst und unter einfügen "nur Werte" sagst.
Dann kannst du verschieben soviel Du willst.


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 19:26:12

Hallo Chris!
Das ist mir neu-Formel durch Werte ersetzen!
Eine Formel produziert ja grade Werte.
Das problem ist ja grade das das Ergebniss in
der selber Zelle liegt!Oder weist DU wie man
Ergebniss von Formel trennen kann??
Gruß
Rolf


  

Betrifft: AW: Problem mit verschieben von: chris b.
Geschrieben am: 21.10.2008 19:32:36

Versuchs mal so:

Markiere deinen Bereich mit den Formeln.
Dann drücke STRG+c für kopieren.
und dann gehe über das Menü Bearbeiten - Inhalte einfügen...und dort wähle auf in dem Option button "Nur Werte"

Dann hast du in den Zellen nur noch Werte stehen ohne die Formlen.
Aber vorsicht.Natürlich wird dann auch nichts mehr berechnet !

gruß Chris

P.s Beispielmappe wäre nicht schlecht weil in den meisten fällen verschiebt sich ja beim einfügen oder löschen von Zeilen die Formel mit.


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 19:48:34

Hallo Chris!
habe ausprobiert-dann wird nichts
mehr berechnet!
Rolf


  

Betrifft: AW: Problem mit verschieben von: Erich G.
Geschrieben am: 21.10.2008 19:24:08

Hallo Rolf,
zu deinem eigentlichen Problem kann ich dir auch nicht mehr sagen als das, was Chris schon geschrieben hat.

Aber in deinem Code gibt es noch ein weiteres Problem: In der Zeile
z = Cells(Rows.Count, 1) + 2
wird (in deiner Excelversion) die Zelle A65536 = Cells(Rows.Count, 1) ausgelesen
und zu deren Wert 2 addiert.

Du müsstest also in A65536 eine Zahl stehen haben.
Auch die Zelle A65536 würde mit nach unten verschoben - was aber nicht möglich ist,
da ja schon das Ende der Tabelle erreicht ist.

Wie soll z tatsächlich bestimmt werden?

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 19:32:15

Hallo Erich!
der Ausdruck
z = Cells(Rows.Count, 1) + 2
hat nichts mit der letzter Zelle zu tun!
Er zählt von oben und verschiebt die zweite Zeile!
Gruß
Rolf


  

Betrifft: AW: Problem mit verschieben von: chris b.
Geschrieben am: 21.10.2008 19:38:10

Rolf würdest du
Range("A2:C2").Insert shift:=xlDown
schreiben hättest du das gleiche ergebniss.
Weil z immer+2 sein wird auser die Zelle 65536 ist gefüllt wie Erich schon gesagt hat
und dann kommt ein fehler.


  

Betrifft: AW: Problem mit verschieben von: Erich G.
Geschrieben am: 21.10.2008 19:42:44

Hi Rolf,
wenn er die zweite Zeile verschiebt, liegt das daran, dass in A65536 nichts steht.
Dieses Nichts wird als Null zu 2 addiert - deshalb die zweite Zeile.
Cells(Rows.Count, 1) ist nun mal A65536!

Wenn du in A65536 mal spaßhalber eine 5 schreibst, bekommt z den Wert 7.
Das nachfolgende Verschieben geht schief.

Sollen denn immer Zellen der 2. Zeile verschoben werden?
Wozu steht dann überhaupt Cells(Rows.Count, 1) im Code und nicht einfach "z = 2"?

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 19:53:03

Hallo Erich!
Kann sein das Ihr recht habt-es hilft aber
nicht weiter!
Rolf


  

Betrifft: AW: Problem mit verschieben von: Erich G.
Geschrieben am: 21.10.2008 20:18:33

Hi Rolf,
es wird nicht so recht klar, was falsch ist, was du erreichen willst.

Wenn du diese verkürzte Version des Makros ausführst:

Sub bereich_verschieben()
   Range("A2:C2").Insert shift:=xlDown
End Sub

Was ist danach falsch? Haben einige oder alle Formeln falsche Ergebnisse?

Sollen die Formeln durch Werte ersetzt werden - danach wird nichts mehr gerechnet -
oder sollen die Formeln irgendwie angepasst werden?

Hast du Formeln, in denen INDIREKT vorkommt? Da kann es Probleme geben.

Ohne Beispielmappe kann es für dich sehr schwer werden uns das zu vermitteln - und uns, dir zu helfen.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Problem mit verschieben von: Erich G.
Geschrieben am: 21.10.2008 19:47:05

Hi Rolf,
probier mal das hier, da kannst du die Berechnung von z sehen:

Sub tst()
   Dim z As Long

   Range("A65536") = 5
   z = Cells(Rows.Count, 1) + 2
   MsgBox z
   Range("A65536").ClearContents  ' Wert wird wieder gelöscht
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 20:14:49

Hallo Erich!
Danke für Aufklärung!
Könntest Du das Ergebnis von einer Formel
in einer anderer Zelle positionieren??
Grüße
Rolf


  

Betrifft: AW: Problem mit verschieben von: Erich G.
Geschrieben am: 21.10.2008 20:26:37

Hi Rolf,
meinst du so etwas?
(kannst du auf einem leeren Tabellenblatt testen)

Sub Wert_uebertragen()
   Range("A3") = 2                           ' Zahl in A3 schreiben
   Range("A4").FormulaLocal = "=WURZEL(A3)"  ' Formel in A4 schreiben

   Range("B5") = Range("A4")                 ' Wert der Formel in B5 schreiben
   Range("B5") = Range("A4").Value             ' nur eine längere Schreibweise
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 21.10.2008 20:51:35

Hallo Erich!
Es sollte so arbeiten-tut es aber nicht!

Sub Wert_uebertragen()
   Range("A3") = Range("A2")    '2                           ' Zahl in A3 schreiben
   Range("A4").FormulaLocal = "=WURZEL(A3)"  ' Formel in A4 schreiben

   Range("B5") = Range("A4")                 ' Wert der Formel in B5 schreiben
   Range("B5") = Range("A4").Value             ' nur eine längere Schreibweise
End Sub


in B5 wird nicht geschrieben.
Gruß
Rolf


  

Betrifft: AW: Problem mit verschieben von: Gerd L
Geschrieben am: 21.10.2008 23:01:20

Hallo Rolf,

selbstverständlich funktioniert das.

Willst Du so eine Spielerei?

https://www.herber.de/bbs/user/56180.xls

Gruß Gerd


  

Betrifft: AW: Problem mit verschieben von: Rolf
Geschrieben am: 22.10.2008 10:34:38

Hallo Gerd!
Du hast mir schon mehrfach geholfen!
Danke sehr!
Ich möchte dynamische Daten verarbeiten
dazu sollten die sich in eine Reihe legen.
Deine Lösung verschiebt zwar jedoch wird
A2 nicht nach A3 verschoben sondern ans untere Ende.
Das hat den Nachteil das man sehr bald nichts mehr sieht.
Dabei hat "calculate" die gewohnheit hat mehrfach calculieren
so das Werte sich rasant vermehren.Es sollte eine kontrolle
geben damit der selbe Wert nicht nochmal verschoben wird!
Herzliche Grüße
Rolf


Beiträge aus den Excel-Beispielen zum Thema "Problem mit verschieben"