Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

Zellentausch Makro modifizieren

Zellentausch Makro modifizieren
21.03.2013 18:37:48
Der
Hallo allerseits,
basierend auf nachfolgendem Makro möchte ich folgendes realisieren:

Sub ZellentauschTest()
Dim c As Range
Dim w1 As Variant, w2 As Variant
Dim i As Long, a As Long
For Each c In Selection
a = a + 1
Next c
If a  2 Then
MsgBox "Die Anzahl der markierten Zellen ist nicht zwei !" & Chr(10) & _
"Das Makro wird abgebrochen !", , _
"Dezenter Hinweis für " & Application.UserName & ":"
Exit Sub
End If
a = 0
For Each c In Selection
a = a + 1
If a = 1 Then w1 = c.Value
If a = 2 Then w2 = c.Value
Next c
a = 0
For Each c In Selection
a = a + 1
If a = 1 Then c.Value = w2
If a = 2 Then c.Value = w1
Next c
End Sub
Ich habe in Spalte F immer 4 Zellen,die zusammen gehören(13-16,18-21 usw. bis 163-166.Dort stehen nun zu Prüfzwecken für diverse Funktionen Zahlen drin.Auf der Basis des obigen Beispiels möchte ich nun,dass beim betätigen einer Schaltfläche jede Zahl eines Blocks sich nach unten oder nach oben verschiebt. Also z.B. F13 in F14,F14 in F15,F15 in F16 und F16 muss dann natürlich in F13 oder eben von unten nach oben. Und das gleichzeitig für alle 30 Blöcke. Von den zu prüfenden Spalten gibt es 15 Stück,wo ich dieses Makro über 15 Schaltflächen anspreche.
Wie kann man sowas bewerkstelligen.
LG Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellentausch Makro modifizieren
21.03.2013 19:33:06
Worti
Hallo Blondie,
hier mal einBeispiel für Spalte F, kannst du aber schnell auf deine 15 Spalten übertragen:
Sub Tauschen()
Dim dblTausch
Dim lngZeile As Long
For lngZeile = 13 To 163 Step 5
If [e1] = "unten" Then
dblTausch = Cells(lngZeile + 3, 6).Value
Range(Cells(lngZeile, 6), Cells(lngZeile + 2, 6)).Copy _
Destination:=Cells(lngZeile + 1, 6)
Cells(lngZeile, 6).Value = dblTausch
Else
dblTausch = Cells(lngZeile, 6).Value
Range(Cells(lngZeile + 1, 6), Cells(lngZeile + 3, 6)).Copy _
Destination:=Cells(lngZeile, 6)
Cells(lngZeile + 3, 6).Value = dblTausch
End If
Next
End Sub
Dabei hab ich in E1 des Sheets entweder unten oder oben stehen, je nachdem in welche Richtung es gehen soll.

Anzeige
AW: Zellentausch Makro modifizieren
21.03.2013 23:07:04
Der
Hallo Worti,
irgendwie funzt das Makro nicht bei mir.Ob ich nun in E1 "unten" oder "oben" stehen hab,das Makro scheint zu arbeiten,aber die Zahlen werden nicht getauscht.
LG Frank

AW: Zellentausch Makro modifizieren
22.03.2013 09:35:12
Der
Guten Morgen Worti,
korrektur,jetzt läuft das Makro.Excel scheint sich gestern wohl irgendwie verschluckt zu haben.
Zwei Sachen. 1. die Angabe mit "unten" oder "oben" braucht nicht sein.Das kann man einfach festlegen. 2. Beim Tauschen verschiebt Excel mir nun auch meine Zellenformatierung. Wie kann ich das abändern?
LG Frank

AW: Zellentausch Makro modifizieren
22.03.2013 11:33:45
Worti
Hallo Blondie,
hier mal der Code für den Tausch nach unten. Analog gehts nach oben:
Sub Tauschen()
Dim dblTausch
Dim lngZeile As Long
'Tausch  nach unten
For lngZeile = 13 To 163 Step 5
dblTausch = Cells(lngZeile + 3, 6).Value
Range(Cells(lngZeile, 6), Cells(lngZeile + 2, 6)).Copy
Range("F" & lngZeile + 1).PasteSpecial Paste:=xlValues
Cells(lngZeile, 6).Value = dblTausch
Next
End Sub

Gruß Worti

Anzeige
AW: Zellentausch Makro modifizieren
22.03.2013 14:52:47
Der
Hey Worti,
so hab ich mir das vorgestellt.
Vielen Dank :-)
Gruß Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige