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

Wert verschieben innerhalb eines Bereiches

Wert verschieben innerhalb eines Bereiches
25.06.2014 20:46:48
Vigo
Hallo zusammen!
Ich habe einen Tabellenausschnitt der folgendermaßen aussieht:
1BCDEFGHIJKLMNOPQRSTU
2x-x-x-x-x-x-x-x-x-x-
Ich möchte nun mit einem Makro die x- Werte um eine Spalte nach links verschieben INNERHALB Spalte B bis Spalte U (diese stellen sozusagen meine Grenzen dar!).
Das Ergebnis soll wie nachfolgend aussehen:
1BCDEFGHIJKLMNOPQRSTU
2x-x-x-x-x-x-x-x-x-x-
3-x-x-x-x-x-x-x-x-x-x

Mein Code sieht so aus:
Range(Cells(3, 2), Cells(3, 21)).Offset(1, -1)
Das Problem ist, dass das auch passiert, allerdings nicht innerhalb von Spalte B bis Spalte U, sondern ein x wird in Spalte A geschrieben.
Weiß jemand Abhilfe?
Viele Grüße, Vigo

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert verschieben innerhalb eines Bereiches
25.06.2014 21:05:40
Matze
Hallo Vigo, was passiert bei Offset ändern auf (1, 1) ?
Matze

AW: Wert verschieben innerhalb eines Bereiches
25.06.2014 23:01:42
Vigo
Hallo Matze!
Bei offset(1,1) wird das Ganze eine Zelle darunter und nach rechts geschoben. Aber auch dann wird es über die Grenzen verschoben...

AW: Wert verschieben innerhalb eines Bereiches
26.06.2014 00:20:46
Matze
Hallo Vito,
dann schau mal was hier passiert eventuell nützt dir das:
Option Explicit
Sub verschieben()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Sheets("Tabelle1").Range("B3:U3")'anpassen
For Each Zelle In Bereich
Zelle.Offset(1, 1).Value = Zelle.Value
Next Zelle
End Sub
Der Bereich verschiebt sich nach C4:V4 so gewollt?
Gruß Matze

Anzeige
AW: Wert verschieben innerhalb eines Bereiches
26.06.2014 09:41:20
Vigo
Hallo Matze!
An offset hab ich auch gedacht! Ich komme hier aber außerhalb meines Bereiches.
Der Bereich geht von Spalte B nach Spalte U und nur innerhalb dieses Bereiches soll versetzt werden, dh. wenn versetzt wird und ein x rutscht außerhalb des Bereiches von Spalte B (da ich nach links verschieben möchte) , dann soll es ab Spalte U wieder eingefügt werden.
Wie sagt man denn, dass NUR innerhalb dieses Bereiches versetzt werden soll?
Viele Grüße,Vigo

Endlosverschieben innerhalb eines Bereiches
26.06.2014 00:34:15
Matthias
Hallo
Hier mal, wie ich es verstanden habe ...
https://www.herber.de/bbs/user/91264.xlsm
Gruß Matthias

Anzeige
AW: Endlosverschieben innerhalb eines Bereiches
26.06.2014 09:33:54
Vigo
Hallo Matthias!
Im Prinzip hast du das richtig verstanden.
Ich hab allerdings auch Daten, wo innerhalb dieses Bereiches nur ein einziges "x" steht, dieses dann aber um 30 Positionen nach links versetzt werden soll. Tut mir leid, ich wollte ein einfaches Beispiel nennen (1 Position nach links versetzen) um mein Probblem zu verdeutlichen.
Irgendwie muss diese 30 aus den Daten ausgelesen werden und dann nur innerhalb des Bereiches Spalte B bis Spalte U versetzt werden.
Hab da an die offset- Funktion gedacht, das funktioniert auch. Allerdings komm ich da auch außerhalb dieses Bereiches. Wie kann ich bespielhaft sagen, dass er wenn ein x in M2 steht dieses um 30 Positionen nach links versetzt allerdings INNERHALB von Spalte B bis Spalte U?
Viele Grüße, Vigo

Anzeige
AW: Version2
27.06.2014 11:11:24
Vigo
Hallo Matthias!
Klappt super!
Vielen Dank für deine Hilfe!
Viele Grüße, Vigo

AW: Version2
27.06.2014 13:03:52
Vigo
Hallo zusammen!
Das Ganze war zwar schon erledigt, aber ich würde den Thread gerne wieder öffnen, um eine weitere Frage basierend auf dieser Grundlage zu lösen.
Hier werden die "x" jeweils im Bereich von Spalte B bis Spalte U versetzt.
Nun würde ich immer gern den Abstand zwischen den "x" wissen wollen. Vielleicht kann man es einer Variablen übergeben, vielleicht aber direkt unter dem x eingetragen werden(ist vielleicht einfacher)?
Also gesucht sind jeweils die Abstände vom ersten x zum zweiten x, dann vom zweiten x zum dritten x,.... und von letzten x zum ersten x.
Könnt ihr mir da helfen?
Viele Grüße, Vigo

Anzeige
AW: Version2
27.06.2014 15:58:31
Vigo
So ich hab nun etwas Vorzeigbares hinbekommen:
'Abstand zwischen "x"sen ermitteln
start = 0
ende = 0
For i = 2 To 21
If Cells(llest, i).Value = "x" Then
ende = start
start = i
If i > 2 Then
Cells(llest, i).Offset(1, 0).Value = start - ende
End If
End If
Next i
Das Problem ist glaub ich dieses i=2 to 21
Das berücksichtigt nicht den Abstand des letzten x bis zum ersten x.
Habt ihr eine Idee?
Viele Grüße, Vigo

AW: Version2
27.06.2014 18:15:14
Matthias
Hallo
Nimm mal eine neue Datei
In B2:U2 stehen irgendwo Deine "x"-Werte
Nun lass mal diesen Code laufen:
Dim Col1&, Col2&, i&
Range("B3:U3").ClearContents
For i = 2 To 21
If Cells(2, i) = "x" Then
If Col1 = 0 Then Col1 = i 'erster Fund
Col2 = i 'nächster Fund
Cells(3, i) = "Fund"
End If
Next
MsgBox "vom letzten x = " & 20 - Col2 + Col1
Prinzip verstanden?
Gruß Matthias

Anzeige
AW: Version2
28.06.2014 10:56:02
Vigo
Hallo Matthias!
Das macht leider nicht das, was ich brauche :( Ich hoffe, du hast nicht allzu lange davor gesessen!
Wenn ich mit dem nachfolgendem Code arbeite, dann bekomm ich fast, was ich benötige. Allerdings berechnet er hier nicht den Abstand des letzten "x" zum ersten "x". Hast du da vielleicht eine Idee?
Sub xy()
Dim start, ende, i As Long
'Abstand zwischen "x"sen ermitteln
start = 0
ende = 0
For i = 2 To 21
If Cells(2, i).Value = "x" Then
ende = start
start = i
If i > 2 Then
Cells(2, ende).Offset(1, 0).Value = start - ende
End If
End If
Next i
End Sub
Viele Grüße, Vigo

Anzeige
AW: Version2
28.06.2014 12:06:47
Vigo
Hat sich erledigt!
Trotzdem vielen Dank, Matthias, dass du dir das mal angeschaut und geholfen hast!
Viele Grüße, Vigo

hie noch ne Version3 ;-)
28.06.2014 17:57:17
Matthias
Hallo
Nee, hab nicht lange drangesessen.
Ist nur manchmal schwierig zu verstehen was der Fragende will
Bin grad erst aus dem Garten zurück, leckeres Grillerchen gemacht
Mich würde aber Deine Endlösung auch interessieren.
Poste doch mal Deinen Code
Hier meine Version3
https://www.herber.de/bbs/user/91304.xlsm
Userbild
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige