Cellen Inhalt um 1 erhöhen

  • Excel

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von ichwars.

    Cellen Inhalt um 1 erhöhen

    guten morgen,

    folgende Problematik in Celle "A" habe ich in Abhängigkeit zum aktuellen Monat eine Zahl welche mit 8.1 beginnt und dann fortlaufend ist. In der Celle "N" ist eine Checkbox welche, sobald aktiviert mir in der
    nächsten Zeile in Celle "A" genau diesen Wert um 1 erhöhen soll, aber wie schon gesagt in Abhängigkeit vom aktuellen Monat.

    Bsp.:

    Celle A1 ---> 8.1
    Celle A2 ---> 8.2


    Celle A* --->8.50

    Ich hab keine Ahnung wie ich das umsetzen könnte.

    Jemand ne Idee für mich?

    MfG
    IchWars
    Der aktuelle Monat soll per Makro ermittelt werden.

    Aktueller Monat August: ---> Nummerierung beginnend mit 8.1
    Monat September ---> Nummerierung beginnend mit 9.1

    Ist sicherlich nicht die beste Lösung, wurde von meinem Chef aber so gewünscht.

    Gruß
    IchWars

    ichwars schrieb:

    Der aktuelle Monat soll per Makro ermittelt werden.

    Aktueller Monat August: ---> Nummerierung beginnend mit 8.1
    Monat September ---> Nummerierung beginnend mit 9.1
    zunächst mal: "8.1" ist in deinem Fall keine Zahl, das issn String, also Text.
    verstehe ich das richtig: Das Makro soll im Grunde ein Datum in einem sehr speziellen Format darstellen, nämlich "Monat.Tag" und Jahreszahl weglassen?

    Ich denke fast sicher, weil habs ausprobiert: du könntest kannst das Datum ohne Makro direkt in die Zelle schreiben, denn die Darstellung des genannten Formats erreichst du einfach, indem du die Excel-Zelle formatierst.
    Dazu auf "Zelle formatieren" gehen, Reiter "Zahlen", "Benutzerdefiniert" anwählen, und "M.T" eintragen - fertig.

    Enormer Vorteil dieser Formatierung ist, dass der Zellwert weiterhin ein Datum ist - genau: eine als Datum dargestellte FließkommaZahl, und du kannst vernünftig damit rechnen: Etwa um einen Tag weiterzugehen rechne einfach Zellwert + 1.
    Dassis nämlich bei Excel die Auffassung einer Fließkommazahl als Datum: Vorkommastellen bezeichnen die Tage, Nachkommastellen sind Stunden, Minuten, Sekunden, Sekundenbruchteile (einfach genial einfach, oder? ;)).

    Du kannst spaßeshalber mal eine Zelle als Datum+Uhrzeit formatieren, und dann einfach eine 1 hineinschreiben. Das bringt dich an den Nullpunkt der Excelschen Zeitrechnung ;)
    Schreib 1,5 hinein, und es ist 12.00 Mittag des ersten Tages der Excel-Welt.
    Erstmal danke für die ausführliche Antwort.

    Aber nein, ein Datum soll nicht in der ersten Zeile stehen.

    Zur Erklärung: In der ersten Spalte (A1, A2 ---> Axxxx) soll eine fortlaufende Nummer erzeugt werden, welche einzig und alleine zur Auftragsverfolgung dient. Also mein Chef wünscht das ich jedem Auftrag den unsere Firma erhält in dieser Excel Tabelle einpflege und ihm eine fortlaufende Nummer gebe. Mit der Bedingung das die erste Zahl vor dem Punkt in Abhängigkeit zum laufenden Monat steht.

    Auf gut deutsch:

    Bsp:


    8.1 <---- Monat August beginnend
    8.2
    .
    .
    8.45
    9.1 <---- Monat Septemer beginnend
    Ich hab die Spalte als Text formatiert da Excel sonst, wie Du (ErfinderDesRades) schon erwähnt hast von einem Datum ausgeht. Die Hintergrundüberprüfung mußte ich zum Teil deswegen auch deaktivieren.
    Wie weit ich im aktuellen Monat zählen muss kann keiner vorher sehen, da es ja abhängig von der Auftragslage ist.
    Hinzu kommt das die Mappe nun schon zwei Wochen von Hand gepflegt wurde und somit schon einige Einträge enthalten sind, welche auch erhalten bleiben müssen.

    Gruß
    IchWars
    na, dassisjama echt pokemonfies :evil:
    zwei ganz unterschiedliche daten zusammengerührt zu einem String :thumbdown:

    Ich würde das auftrennen in 3 Spalten, davon die ersten beiden verborgen.
    Inne ersten Spalte käme die Monats-Zahl, inne 2.Spalte die "AuftragsNummer".
    Die 3. (sichtbare) Spalte würde mit einer Excel-Formel die anneren beiden Spalten in geeigneter Weise verbinden.

    Aber langfristig hat das keine Perspektive, sondern eine Datenbank muß her. Da hängen ja vmtl. noch KundenDaten dran und wasweißichnichalles.
    Würde ich auch gerne tun, da sich so vieles noch mehr vereinfachen ließe. Kann und werde ich aber nicht durchgesetzt bekommen, Da in der Hinsicht meinem Chef auch die Hände gebunden sind.
    Wir müssen auf fremd Rechnern unsere Arbeit verrichten und somit mit dem arbeiten was uns der Kunde zur Verfügung stellt. Heißt keine eigenen Programme, nichtmal Freeware darf ich installieren, selbst die Harware Änderungen sind verboten. Ist nun einmal so, leider.
    Das mit den IT-Bestimmungen kenne ich auch. Diese werden von Leuten herausgebracht, welche nicht Produktiv arbeiten, sondern sich ausschließlich mit solchen tollen Vorschriften befassen, und nebenbei den produktiven "Kollegen" das Leben schwer zu machen, weil die einfach nicht jeden Anwendungsfall kennen können.

    Bei uns z.B. wurde Access abgeschafft, damit nicht jeder seine eigene Datenpflege durchführt und so mehrfache "unterschiedliche - gleiche" Datenbanken geführt werden, was nicht gewollt ist. (Aussage des zuständigen IT-MA...)

    Die Folge: Die einheitlichen Datenbanken lassen auf sich warten, da die Umsetzungen doch nicht mal so realisiert werden können, wie gedacht. - Was machen die Anwender? Richtig: Excel wird als Datenbankersatz genutzt.

    Sicherheit find ich auch wichtig, jedoch sollte ein vernünftiges Arbeiten gegeben sein.


    Wie ist denn der bisherige Code (Checkbox)?
    Ist in jeder Zeile der Spalte "N" eine Checkbox?

    Steht irgendwo das Datum des Auftrages? Gibt es jedes Jahr eine neue Datei? Was passiert, wenn ein 07er Auftrag im Monat 08 plötzlich nachgepflegt werden soll? Nutzen mehrere Anwender die selbe Datei gleichzeitig?
    Gruß
    Peterfido

    Keine Unterstützung per PN!


    So sieht unsere Tabelle bisher aus.
    Wie man sieht ist in Spalte "A" meine fortlaufende Nummer um die es ja eigentlich geht. Datum in Spalte "D" wird noch von Hand eingetragen, genauso wie die KW in Spalte "I".
    Checkboxen gibt es bisher nur in den Spalten "K" und "N".
    Das Datum in Spalte "M" wird automatisch eingetragen sobald in Spalte "N" ein doppel Klick erfolgt und die ganze Zeile färbt sich dann auch dementsprechend.

    Sinn des ganzen ist lediglich das ich bei uns den Überblick behalte wer was am Tag zu erledigen hat, bzw. wir bei Rückfragen des Kunden den Auftrag schneller wieder finden.

    *peterfido
    Wie ist denn der bisherige Code (Checkbox)?

    Visual Basic-Quellcode

    1. If Range("N" & IntZeile) = "ü" ThenRange("A" & IntZeile, "N" & IntZeile).Interior.ColorIndex = 4Sheets("2012").Range("M" & IntZeile).Value = DateSheets("2012").Range("K" & IntZeile).Locked = True'Sheets("2012").Range("A" & IntZeile + 1).Value = Worksheets("2012").Range("A" & IntZeile).Value + 1



    Auskommentierte Zeile war mein Ansatz zum weiter zählen. Was er auch macht, "klaut" mir dann aber den Punkt und eine Monatsabhänigkeit ist da auch noch nicht enthalten.

    Ist in jeder Zeile der Spalte "N" eine Checkbox?
    ja wie man sieht.
    Gibt es jedes Jahr eine neue Datei?
    Wird sich zeigen. Soweit wurde noch nicht geplant. Aber ich denke es wird dann lediglich eine neue Tabelle erstellt.
    Was passiert, wenn ein 07er Auftrag im Monat 08 plötzlich nachgepflegt werden soll?
    Rückwirkend werden keine Daten eingepflegt. Sobald ein Auftrag bei uns eintrifft, erhält er sofort eine Nummer und wird in dieser Tabelle erfasst.
    Nutzen mehrere Anwender die selbe Datei gleichzeitig?
    Nein.
    Im Codeteil der aktuellen Tabelle würde ich dann folgendes einfügen:

    Visual Basic-Quellcode

    1. Public Sub zaehlen()
    2. Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).NumberFormat = "@"
    3. Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = zaehler
    4. End Sub
    5. Private Function zaehler() As String
    6. Dim m As Byte
    7. Dim n As Integer 'long bei mehr als 32767 Aufträgen im Monat
    8. Dim i As Long
    9. Dim pos As Integer
    10. m = Month(Now)
    11. If m > 9 Then
    12. pos = 2
    13. Else
    14. pos = 1
    15. End If
    16. n = 1
    17. For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    18. If CByte(Left$(Cells(i, 1), pos)) = m Then
    19. n = n + 1
    20. End If
    21. Next i
    22. zaehler = Trim(CStr(m)) & "." & Trim(CStr(n))
    23. End Function


    Aufrufen dann über die Checkbox

    Visual Basic-Quellcode

    1. zaehlen


    Lässt sich auch in ener Sub komplett unterbringen.

    Visual Basic-Quellcode

    1. Public Sub zaehlen()
    2. Dim m As Byte
    3. Dim n As Integer 'long bei mehr als 32767 Aufträgen im Monat
    4. Dim i As Long
    5. Dim s As String
    6. Dim pos As Integer
    7. Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).NumberFormat = "@"
    8. m = Month(Now)
    9. If m > 9 Then
    10. pos = 2
    11. Else
    12. pos = 1
    13. End If
    14. n = 1
    15. For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    16. If CByte(Left$(Cells(i, 1), pos)) = m Then
    17. n = n + 1
    18. End If
    19. Next i
    20. Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Trim(CStr(m)) & "." & Trim(CStr(n))
    21. End Sub
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „peterfido“ ()