Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.
Anzeige
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.
Anzeige
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.
Anzeige
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
Anzeige
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalte in Excel tauschen


Schritt-für-Schritt-Anleitung

Um Zellinhalte in Excel zu tauschen, kannst Du folgende Schritte befolgen:

  1. Zellen auswählen: Halte die Strg-Taste gedrückt und wähle die zwei Zellen aus, deren Inhalte Du tauschen möchtest.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)", wähle Einfügen und dann Modul.

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ZellinhalteTauschen()
       Dim temp As Variant
       If Selection.Count <> 2 Then Exit Sub
       temp = Selection.Cells(1).Value
       Selection.Cells(1).Value = Selection.Cells(2).Value
       Selection.Cells(2).Value = temp
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle ZellinhalteTauschen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Die Auswahl ist nicht korrekt."

    • Lösung: Stelle sicher, dass Du genau zwei Zellen ausgewählt hast. Wenn Du mehr oder weniger Zellen auswählst, wird der Code nicht ausgeführt.
  • Fehler: "Der Code funktioniert nicht wie erwartet."

    • Lösung: Überprüfe den Code auf Tippfehler und stelle sicher, dass Du die richtigen Zellen ausgewählt hast.

Alternative Methoden

Eine einfache Methode, um Zellen in Excel zu tauschen, ist die Verwendung von Drag & Drop:

  1. Wähle die erste Zelle aus.
  2. Halte die Shift-Taste gedrückt und ziehe die Zelle auf die zweite Zelle.
  3. Lass die Maustaste los, während Du die Shift-Taste gedrückt hältst.

Diese Methode funktioniert gut, wenn die Zellen benachbart sind und Du keine VBA-Programmierung verwenden möchtest.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast die Werte in Zelle A1 (10) und B1 (20). Nach dem Ausführen des Codes wird A1 (20) und B1 (10) sein.

  • Beispiel 2: Wenn Du zwei Zeilen tauschen möchtest, kannst Du den gleichen Code verwenden, jedoch die Zeilen entsprechend anpassen.

Sub ZeilenTauschen()
    Dim temp As Variant
    If Selection.Rows.Count <> 2 Then Exit Sub
    temp = Selection.Rows(1).Value
    Selection.Rows(1).Value = Selection.Rows(2).Value
    Selection.Rows(2).Value = temp
End Sub

Tipps für Profis

  • Tastenkombinationen nutzen: Du kannst eine Excel Zellen tauschen Tastenkombination erstellen, um den Code schneller auszuführen.
  • Benachbarte Zellen: Wenn Du nur benachbarte Zellen tauschen möchtest, achte darauf, dass der Code entsprechend angepasst wird.
  • Daten validieren: Stelle sicher, dass die Zellen, die Du tauschen willst, die richtigen Datentypen enthalten (z.B. keine Textwerte in numerischen Zellen).

FAQ: Häufige Fragen

1. Kann ich mehr als zwei Zellen gleichzeitig tauschen?
Ja, aber dafür musst Du den Code anpassen, um mit mehr Zellen umzugehen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in allen Excel-Versionen funktionieren, die VBA unterstützen (Excel 2007 und später).

3. Was ist, wenn ich die Zellen vertauschen möchte, die nicht benachbart sind?
In diesem Fall musst Du sicherstellen, dass der Code die richtigen Zellen adressiert, eventuell mit der Verwendung von Union.

4. Gibt es eine Möglichkeit, Zellen ohne VBA zu tauschen?
Ja, Du kannst die Drag & Drop-Methode verwenden, solange die Zellen benachbart sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige