Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1184to1188
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

Zellinhalte tauschen

Zellinhalte tauschen
Peter
Hallo Excel-Spezialisten,
ich habe in meinem Sheet 2 beliebige Zellen (z.B. B3 und H5) durch die gedrückte Steuerungstaste markiert und möchte deren numerische Inhalte gegeneinander austauschen.
Wie könnte ein für diese Aufgabe geeigneter Code aussehen ?
Danke für Euer Interesse.
Gruß, Peter F.
AW: Zellinhalte tauschen mit...
12.11.2010 16:44:53
Luc:-?
Hi, Peter…
Dim temp
With ActiveWindow.RangeSelection
if .Cells.Count = 2 Then _
temp = .Cells(1): .Cells(1) = .Cells(2): .Cells(2) = temp
End With

Gruß+schöWE Luc :-?
AW: Zellinhalte tauschen mit...
12.11.2010 17:11:19
Peter
Hallo Luc:-?,
danke für den Code, der aber leider nicht so funktioniert, wie gewünscht: Es wird lediglich der Wert aus der zuerst markierten Zelle in die darunterliegenden Zelle verschoben und bei nochmaliger Ausführung des Codes wieder zurückgeholt. Der Wert in der 2. markierten Zelle bleibt davon unberührt.
Peter F.
AW: Zellinhalte tauschen mit...
12.11.2010 17:54:30
hary
Hallo Peter
versuch mal das.

Sub tausch()
Dim a as long
dim b as long
If Selection.Count  2 Then Exit Sub
a = Range(Left(Selection.Address, 4))
b = Range(Right(Selection.Address, 4))
Range(Left(Selection.Address, 4)) = b
Range(Right(Selection.Address, 4)) = a
End Sub

Anzeige
Warum so umständlich, Hary...? owT
12.11.2010 18:14:47
Luc:-?
:-?
@ Luc, was lauft verkehrt?
12.11.2010 18:25:32
hary
Hallo Luc
Eigentlich bin ich der Meinung deine Codes funzen, aber dieser?
vorher
Tabellenblattname: Tabelle1
 

E

F

G

H

6

3

 

 

ee


nach Codeausfuehrung
Tabellenblattname: Tabelle1
 

E

F

G

H

6

3

 

 

ee

7

3

 

 

 


Und da ich noch mit Arrays usw auf Kriegsfuss stehe,lieber umstaendlich.
gruss hary
Anzeige
mein Code setzt voraus, dass beide Zellen...
12.11.2010 18:36:02
Luc:-?
…benachbart sind, Hary,
ansonsten wäre das ein Fall für Union, dann müsste es auch klappen.
Gruß Luc :-?
AW: Zellinhalte tauschen mit...
12.11.2010 18:38:09
Peter
Hallo Hary,
funktioniert bei mir leider auch nicht, wenn ich im beigefügten Sheet Zelle A13 und Zelle C7 zusammen markiere (A13 zuerst). Die Werte 4 und 30 werden nicht ausgetauscht.
Probier`s doch mal bitte selbst.
https://www.herber.de/bbs/user/72277.xls
Gruß,
Peter F.
Union wär 'ne Sackgasse, nimm Areas,...
12.11.2010 19:15:03
Luc:-?
…Peter,
also statt .Cells(1).Areas(1).Cells(1) und statt .Cells(2).Areas(2).Cells(1). Dann klappt das auch bei Multiauswahl, aber nicht bei einfacher Bereichsauswahl. Wenn du das auch brauchst, musst du über .Areas.Count noch 'ne Verzweigung einbauen oder die Zellen immer getrennt auswählen. Alternativ wäre auch die Auswahl aller Zellen von der 1. bis zur letzten zu tauschenden möglich. Dann wäre der Zellindex für die letzte aber .Cells(.Cells.Count) und die If-Abfrage der Zellenanzahl müsste entfallen.
Luc :-?
Anzeige
AW: Zellinhalte tauschen mit...
12.11.2010 19:18:57
Peter.H
Hallo Peter
so sollte Harrys Code funktionieren...
Sub tausch()
Dim a, b, c, d
If Selection.Count  2 Then Exit Sub
a = Range(Left(Selection.Address, 4))
b = Range(Right(Selection.Address, 4))
c = Range(Left(Selection.Address, 4)).Address
d = Range(Right(Selection.Address, 4)).Address
Range(c) = b
Range(d) = a
End Sub
Gruß
Peter
AW: Zellinhalte tauschen mit...
12.11.2010 19:54:44
Peter
Bingo, jetzt klappt es.
Danke Euch beiden.
Gruß,
Peter
AW: Zellinhalte tauschen mit...
12.11.2010 20:01:04
hary
Hallo Peter
soll nicht umsonstgewesen sein. ;-))

Dim a
Dim erste
Dim zweite
If Selection.Count  2 Then Exit Sub
a = Split(Selection.Address, ",")
erste = Range(a(0))
zweite = Range(a(1))
Range(a(1)) = erste
Range(a(0)) = zweite

gruss hary
Anzeige
Wenn du beide Zellen markiert und den...
12.11.2010 18:13:41
Luc:-?
…Code genau so wie vorgegeben verwendet, auch die Pkte nicht vergessen hast, Peter,
fktioniert das so wie gewünscht!
Luc :-?
AW: Zellinhalte tauschen
13.11.2010 15:16:48
Gerd
Hallo Peter F.!
Sub test()
Dim Rng As Range, Temp As Variant
If TypeOf Selection Is Range Then
If Selection.Count = 2 Then
Set Rng = Range(Replace(Selection.Address, ",", ":"))
Temp = Rng(1, 1)
Rng(1, 1) = Rng(Rng.Rows.Count, Rng.Columns.Count)
Rng(Rng.Rows.Count, Rng.Columns.Count) = Temp
End If
End If
End Sub
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige