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

Forumthread: Zellen mit negativen Wert kopieren

Zellen mit negativen Wert kopieren
05.12.2014 09:00:57
Alex
Moin zusammen,
ich bin neu hier im Forum und sage somit zu aller erst einmal "Hallo an alle!" ;-)
Und ich habe natürlich auch ein kleines VBA-Problem, an dem ich mir bereits seit zwei Tagen die Zähne ausbeiße. Leider habe ich nichts im Forum und bei Google zu diesem Problem gefunden.
Es geht darum, das ich eine Möglichkeit suche, per VBA eine Spalte (F) in einer Tabelle zu durchsuchen und alle negativen Werte (z.B. -3.502,46 €) eine Zelle weiter (G) rechts einzufügen und in (F) zu löschen.
Hintergrund: Eine Exceldatei wird aus einem Finanzprogramm exportiert, aber dummerweise stehen die Soll- und Haben-Werte in der gleichen Spalte. Das führt aber beim Einlesen in einem anderen Programm zu einem Problem.
Ich hoffe, ich konnte es halbwegs verständlich erklären und bedanke mich schon einmal vielmals für Eure Mühe!
Besten Gruß,
-Alex

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen mit negativen Wert kopieren
05.12.2014 09:31:21
MCO
Hallo!
Versuchs mal damit:
Sub daten_schieben()
For Each cl In Range("F:F").SpecialCells(xlCellTypeConstants, 3) 'Auswahl Zellen in F
If cl.Value 
Einzige Vorraussetzung ist bei der Auswahl der Zellen, dass es Konstanten sind. Formeln werden nicht beachtet. Zur Änderungen die "specialcells"-Option anpassen, Erläuterungen in der Excel-Hilfe.
Gruß, MCO

Anzeige
AW: Zellen mit negativen Wert kopieren
05.12.2014 09:51:17
Alex
Hey MCO,
auf diese Formel wäre ich im Leben nie gekommen.
Funktioniert perfekt!
Herzlichen Dank für Deine schnelle Hilfe!!!!!!!!!!!!!!
Bis dann,
-Alex

kannst mal testen
05.12.2014 09:32:44
Tino
Hallo,
hier mal ein Code zum testen.
Ich gehe davon aus, dass die Spalte G schon für die Daten zur Verfügung steht,
sonst muss erst eine leere Spalte eingefügt werden!
Sub Start()
Dim rng As Range
With Tabelle1 'evtl. Tabelle anpassen
'ab F2 in F1=Überschrift
Set rng = .Range("F2", .Cells(.Rows.Count, 6).End(xlUp)).Offset(, 1)
'keine Daten?
If rng.Rows(1).Row  0 Then
'Werte mit Zahlen
Set rng = rng.SpecialCells(xlCellTypeConstants, 1)
'Offset löschen
rng.Offset(, -1).Value = Empty
End If
End Sub
Gruß Tino

Anzeige
AW: Zellen mit negativen Wert kopieren
05.12.2014 09:36:56
yummi
Hallo Alex,
ohne deien Datei zu kennen, mal ein Versuch:

sub kopieneg
dim lletztezeile as long
dim i as long
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
for i = 1 to lletztezeile
If Cells(i, 1).Value 


;

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

Zellen mit negativen Werten in Excel kopieren und trennen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei mit der Spalte, die die negativen Werte enthält (z.B. Spalte F).

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (deinDateiname)" > Einfügen > Modul.

  4. Kopiere und füge den folgenden Code ein:

    Sub daten_schieben()
       For Each cl In Range("F:F").SpecialCells(xlCellTypeConstants, 3) ' Auswahl Zellen in F
           If cl.Value < 0 Then
               cl.Offset(0, 1).Value = cl.Value ' Wert in die nächste Zelle rechts kopieren
               cl.Value = "" ' Wert in F löschen
           End If
       Next cl
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle daten_schieben und klicke auf "Ausführen".

  7. Überprüfe die Spalte G: Dort sollten jetzt alle negativen Werte aus Spalte F kopiert und in Spalte F gelöscht worden sein.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004": Dies kann auftreten, wenn keine Zellen mit konstanten Werten vorhanden sind. Achte darauf, dass die Spalte F tatsächlich Daten enthält.

  • Lösung: Stelle sicher, dass du die richtige Spalte und den richtigen Zelltyp (Konstanten) verwendest. Verwende die SpecialCells-Option, um nur die gewünschten Zellen auszuwählen.


Alternative Methoden

Eine Alternative zum VBA-Skript ist die Verwendung von Excel-Formeln:

  1. Verwende die Formel: In Zelle G1 kannst du die folgende Formel eingeben, um negative Werte zu kopieren:

    =WENN(F1<0;F1;"")
  2. Ziehen und ausfüllen: Ziehe die Formel nach unten, um sie auf die gesamte Spalte anzuwenden.

Diese Methode eignet sich gut, wenn du keine VBA-Programmierung verwenden möchtest.


Praktische Beispiele

Angenommen, in Spalte F sind folgende Werte:

F
10
-5
20
-3
15

Nach Ausführung des VBA-Codes oder der Formel in Spalte G sollte die Tabelle folgendermaßen aussehen:

F G
10
-5 -5
20
-3 -3
15

So hast du die Excel positiven und negativen Zahlen erfolgreich getrennt.


Tipps für Profis

  • Fehlerbehandlung: Füge On Error Resume Next am Anfang deines VBA-Codes hinzu, um Laufzeitfehler zu ignorieren.
  • Modularer Code: Teile deinen Code in verschiedene Subroutinen auf, um die Wartung zu erleichtern.
  • Datenüberprüfung: Verwende If IsNumeric(cl.Value) Then um sicherzustellen, dass nur numerische Werte verarbeitet werden.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, wenn ich auch positive Werte kopieren möchte?
Du kannst die Bedingung im Code ändern, um auch positive Werte zu berücksichtigen, indem du If cl.Value > 0 Then verwendest.

2. Funktioniert dieser Code in jeder Excel-Version?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren.

3. Wie kann ich sicherstellen, dass ich keine Daten verliere?
Vor der Ausführung des Codes solltest du immer eine Sicherungskopie deiner Daten anfertigen, um einen möglichen Datenverlust zu vermeiden.

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