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

Beträge für Gutschriften negieren

Beträge für Gutschriften negieren
23.02.2023 11:10:23
Balder
Hallo,
in meiner Beispieldatei habe ich verschiedene Buchungssätze.
Bei den Belegnummern (Spalte A) gibt es 2 Kategorien:
1. Buchungen mit Verkaufswerten ohne Umtausch oder Wandlung. Diese Belegnummern fangen mit einer 7 an und sind 6-stellig.
2. Buchungen die durch Umtausch/Wandlung eine Gutschrift beinhalten. Diese Belegnummern fangen mit einer 1 an und sind 4- bzw. 5-stellig (gelb markiert).
Damit ich diese Daten in einem anderen System weiterverarbeiten kann, müssen alle Gutschrift-Beträge in einen negativen Wert umgewandelt werden (gelb markiert). Dafür benötige ich eine Lösung in VBA.
Kann mir vorstellen, dass dieses Problem für Excelprofis recht einfach zu lösen ist. Das ist für mich aber leider wie höhere Mathematik.
Hier die Datei:
https://www.herber.de/bbs/user/157970.xlsx
Schon mal vielen Dank im Voraus!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beträge für Gutschriften negieren
23.02.2023 11:20:02
UweD
Hallo
so?
Sub Gutschrift()
    Dim LR As Long, i As Long, Sp1 As Integer, Sp2 As Integer, Z1 As Integer
    
    Sp1 = 1  'Spalte A
    Sp2 = 11 'Spalte K
    Z1 = 2   'Erste Datenspalte
    
    With Sheets("Tabelle1")
    
        LR = .Cells(.Rows.Count, Sp1).End(xlUp).Row 'letzte Zeile der Spalte
        
        For i = Z1 To LR
            If Len(.Cells(i, Sp1))  6 Then
                .Cells(i, Sp2) = -.Cells(i, Sp2)
            End If
        Next
    
    End With
    
End Sub
LG UweD
AW: Beträge für Gutschriften negieren
23.02.2023 19:07:31
Balder
Hallo,
leider komme ich damit nicht weiter. Bitte die gelb markierten Zellen nicht berücksichtigen, dies war nur zur Übersicht von mir händisch hinzugefügt.
Ein kleines Makro wäre mir am liebsten, da die Datei sehr viel größer ist – es war nur kleiner Ausschnitt von der Datei.
Dazu kommt noch, dass das zur Vorbereitung als Import in ein anderes Programm gedacht war und die Datein auch mal viel größer sein können (z. B. für ein Quartal oder Jahr).
VG
AW: Beträge für Gutschriften negieren
23.02.2023 23:18:28
Balder
Wie funktioniert das in einem Makro?
So das die Rechnungsliste beliebig lang sein kann?
Sollte schon irgendwie automatisiert ablaufen => Makro starten und fertig.
Wäre super, wenn du da eine Idee hast.
AW: Beträge für Gutschriften negieren
24.02.2023 08:53:02
Balder
Hallo,
sorry ich hatte den Code, den du zum Anfang gesendet hast, gar nicht gesehen. Den Button brauche ich nicht.
Könntest du bitte den Code noch mal prüfen, bei mir kommt folgende Fehlermeldung:
Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs
VG
Anzeige
AW: Beträge für Gutschriften negieren
24.02.2023 13:36:35
onur
Bei mir kommt keine Meldung (sonst hätte ich die Datei auch nicht gepostet). Muss wohl an deiner Anpassung oder deiner Beispieldatei liegen.
AW: Beträge für Gutschriften negieren
25.02.2023 16:22:58
Balder
Hallo, funktioniert nun auch bei mir. Hatte nur einen anderen Blatt-Namen. Vielen Dank!
Gerne !
25.02.2023 22:15:19
onur
?
24.02.2023 08:12:31
UweD
Was ist an meiner Lösung auszusetzen?
LG UweD
AW: ?
24.02.2023 13:39:34
onur
"Diese Belegnummern fangen mit einer 1 an und sind 4- bzw. 5-stellig "
AW: ?
24.02.2023 15:18:35
UweD
Hallo onur
genau diese will er ja negieren
wobei es egal ist ob die mit 1 anfange oder mit 7
Das 2. Merkmal war die Länge.
Entweder 6 stellig oder (4-5 stellig)
Also ist mein IF auf Länge 6 ausgelegt.
Klappt bestens.
LG UweD
Anzeige
AW: Beträge für Gutschriften negieren
24.02.2023 14:41:46
Yal
Hallo Balder,
warum VBA? Ich meine, wenn man selber noch nicht in der Lage ist, damit umzugehen, kann VBA anstrengend werden.
Folgende Formel in eine leere Spalte in Zeile 2 eingeben, z.B. in N2
=WENN(LINKS(A2;1)="7";K2;-K2)
Nach M2 gehen und mit Strg+Pfeil nach unten auf die letzte Zelle von Spalte M gehen,
einmal nach rechts,
mit Shift+Strg+Pfeil nach oben die Spalte N markieren,
mit Strg+u die Formel nach unten kopieren (Strg+d, falls englisches Excel)
auf dieselbe Art und Weise (Shift+Strg+Pfeil) die Spalte N markieren (geht auch "von unten"),
kopieren (Strg+c)
auf K2 gehen,
als Wert einfügen (Alt,r,v,w)
Spalte N wieder löschen.
Mit ein bischen Übung ca. weniger als 2 Minuten.
Es handelt sich hier um eine Kernkompetenz, die Du unter Umstand 5 mal am Tag gebrauchen kannst.
Besser als eine Makro, das Du nicht kennst und bei dem Du wieder verloren bist, wenn die Datenspalte nicht mehr K sondern L ist.
Nur meine Meinung.
Schönes Wochenende
VG
Yal
Anzeige
AW: sehe es ähnlich ...
24.02.2023 15:13:56
neopa
Hallo Yal,
... jedoch wozu eine Zusatzspalte?
In K2: =WENN(LINKS(A2:A21)="1";-J2;J2) und nach unten kopiert reicht doch auch. Und wenn die Datenliste als "intelligente" Tabelle formatiert wird, spart man sich sogar das herunter kopieren, weil das dann Excel selbst auch ohne VBA übernimmt.
Gruß Werner
.. , - ...
habe sogar übersehen...
24.02.2023 17:30:51
Yal
...dass die Daten daneben verfügbar sind. :-(
VG
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige