1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Makros in Ecxel

Discussion in 'Office-Programme' started by pcuser2009, Oct 31, 2009.

Thread Status:
Not open for further replies.
  1. Guten Abend zusammen,

    ich möchte in Excel folgendes Makro hinterlegen:

    Unsere Kundenaufträge haben einen bestimmten Nummernkreis, der sich immer wiederholt, z.B. 6004567, 6003716.

    Wir listen diese in einer Exceltabelle alle auf. Ich soll nun ein Makro hinterlegen, damit man die 600 nicht mehr tippen muss, sondern nur noch die letzten 4 Ziffern (z. B. ...4567) und die 600 davor automatisch erscheint.

    Ich habe noch nie mit Makros gearbeitet. Kann mir jemand helfen?

    :bitte: :bahnhof:

    Viele Grüße

    pcuser2009
     
  2. dsmg500

    dsmg500 ROM

    Hallo pcuser2009,

    dafür brauchst Du kein Makro. Einfach die betreffenden Zellen markieren, dann Format - Zellen - Zahlen - Benutzerdefiniert und hier das Format "600"0 eingeben (mit den Anführungszeichen)

    Gruss

    dsmg500
     
  3. Beverly

    Beverly Halbes Megabyte

    Hi,

    falls du die Ziffern in weiteren Funktionen verwenden willst wie z.B. SVERWEIS() oder VERGLEICH(), funktionieren sie durch das benutzerdefinierte Zahlenformat nicht.

    In diesem Fall könntest du aber mit einer Hilfsspalte (z.B. Spalte A) arbeiten in der die Eingaben gemacht werden und in Spalte B wird dann die endgültige Ziffer zusammengesetzt - so nach diesem Prinzip:

    =600&A1

    Die andere Möglichkeit - VBA, wobei die Ziffer direkt nach der Eingabe zusammengesetzt wird. Mache einen Rechtsklick auf den Tabellenreiter -> Code anzeigen und kopiere den folgenden Code in das rechte (obere) Fenster:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 Then
            Application.EnableEvents = False
            If Target.Count = 1 Then
                Target = "600" & Target
            End If
            Application.EnableEvents = True
        End If
    End Sub
    
    Damit wird in Spalte A (1) bei einer Eingabe jeweils 600 vorangestellt. Die Spalte musst du natürlich an deine Bedingungen anpassen.
     
  4. Guten Abend,

    erstmal vielen Dank für Eure schnellen Antworten.

    @dsmg500

    Dein Tipp war sehr einfach umzusetzen!

    @Beverly:

    habe auch Deinen Tipp einmal ausprobiert, den Code in das Fenster eingefügt, aber wie kann ich diesen "aktivieren"damit die Excel-Tabelle weiß, was sie tun soll - was muss ich dann machen? Hab leider momentan Null VBA-Kenntnisse :confused:

    Viele Grüße

    pcuser2009
     
  5. Hascheff

    Hascheff Moderator

    Hallo pcuser2009,
    kopiere nicht gleich den ganzen Code, sondern wähle im VBA-Fenster oben rechts das Ereignis "Change" im "Worksheet"-Fenster. Dann wird automatisch der Rahmen erzeugt, in den du nur noch den Inhalt einfügen musst.
    Gruß
    Hascheff
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    der Code muss nicht aktiviert werden. Ich nehme an, du hast ihn nicht in das richtige Tabellenblatt eingefügt. Schau dir das angehängte Beispiel an - dort wird in Spalte A von tabelle1 stets 600 vor die Eingabe gesetzt. Den Code findest du nach Rechtsklick auf den Tabellenreiter von Tabelle1 -> Code anzeigen.
     

    Attached Files:

Thread Status:
Not open for further replies.

Share This Page