Office: VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, in einem Excel, das ich für Arbeitskollegen gebaut habe, müssen diese verschieden Zahlen und Angaben zurückmelden. Um zu verhindern,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von scm, 18. Juni 2014.

  1. VBA


    Hallo zusammen,

    in einem Excel, das ich für Arbeitskollegen gebaut habe, müssen diese verschieden Zahlen und Angaben zurückmelden. Um zu verhindern, dass dabei durch falsche Kopieren die Metrik & Formeln in Mitleidenschaft gezogen werden, soll das Sheet so eingeschränkt werden, dass jedes Einfügen automatisch als "Werte einfügen" funktioniert, unahbhängig, ob das vom User so bewusst gemacht wurde.
    Zusätzlich soll in den Spalte K und L jeder Eintrag als Uhrzeit formatiert (hh:mm) sein.

    Im Web habe ich dazu folgenden Code gefunden. Problem: Während er in einer englischen Excelversion einwandfrei läuft, gibt es in jeder deutschen Version die Fehlermeldung "Ungültiger Prozeduraufruf oder ungültiges Argument".

    Irgendwo scheint also ein ein sprachspezifisches Problem vorzuliegen.
    Wie bekomme ich den Code auch in den deutschen Versionen zum Laufen, bzw. mach ihn sprachunabhängig?


    PHP:
             Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim UndoList As String

    Application
    .ScreenUpdating False
    Application
    .EnableEvents False

    On Error 
    GoTo Whoa

    '~~> Get the undo List to capture the last action performed by user
    UndoList = Application.CommandBars("Standard").Controls("&Undo").List(1)

    '
    ~~> Check if the last action was not a paste nor an autofill
    If Left(UndoList5) <> "Paste" And UndoList <> "Auto Fill" _
    Then 
    GoTo LetsContinue

    '~~> Undo the paste that the user did but we are not clearing the
    '
    ~~> clipboard so the copied data is still in memory
    Application
    .Undo

    If UndoList "Auto Fill" Then Selection.Copy

    '~~> Do a pastespecial to preserve formats
    On Error Resume Next
    '
    ~~> Handle text data copied from a website
    Target
    .Select
    ActiveSheet
    .PasteSpecial Format:="Text"Link:=False_
    DisplayAsIcon
    :=False

    Target
    .PasteSpecial Paste:=xlPasteValuesOperation:=xlNone_
    SkipBlanks
    :=FalseTranspose:=False
    ActiveSheet
    .Columns("K:L").NumberFormat "h:mm;@"
    On Error GoTo 0

    ~~> Retain selection of the pasted data
    Union
    (TargetSelection).Select

    LetsContinue
    :
    Application.ScreenUpdating True
    Application
    .EnableEvents True
    Exit Sub
    Whoa
    :
    MsgBox Err.Description
    Resume LetsContinue
    End Sub
    :)
     
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
    Das Makro wird automatisch gestartet.
    Der Code wirkt nur in dieser Tabelle.
    Code:
     
    Hajo_Zi, 19. Juni 2014
    #2
  3. Hallo Hajo_Zi,

    Danke für die schnelle Antwort. Wenn ich das richtig sehe, ist Dein Code primär zur Änderung in das Uhrzeitformat. - funktioniert auch!

    Wie sieht es denn mit dem "als Wert einfügen"-Teil aus?
    Das ist momentan das für mich primär Wichtige. Hast Du da vielleicht auch was parat?
    Danke!
     
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    VBA

    das siehst Du falsch, Inhalt wird durch Wert ersetzt. Einfach testen.
     
    Hajo_Zi, 20. Juni 2014
    #4
  5. Hmm,... Gerade ausprobiert - bei mir behält der eingefügte Wert seine Formatierung bei und passt sich nicht an die Zielformatierung der Zelle an.
    Was mache ich falsch?
     
  6. Hajo_Zi
    Hajo_Zi Erfahrener User
    nur Spalte K und L sollten formatiert werden.
    Text in einer Zelle kann nicht formatiert werden.
     
    Hajo_Zi, 20. Juni 2014
    #6
  7. Ok, aber auch in den beiden Spalten änder sich das nicht.
    Also wenn ich bspw. einen als Euro formatierten Wert nehme und in Spalte K oder L einfüge bleibt das dort ein Euro-Wert anstatt als Uhrzeit formatiert angezeigt zu werden.
    Analoges gilt für Schriftfarbe, Zellformatierung etc.
     
  8. Hajo_Zi
    Hajo_Zi Erfahrener User

    VBA

    in meiner Datei geht es, Deine Aktionen und Datei sehe ich nicht.
    Den Beitrag #6 hast Du komplett gelesen?
     
    Hajo_Zi, 20. Juni 2014
    #8
  9. PS. Nur in den Spalten L und K sollte es durch VBA als Uhrzeit (hh:mm) formatiert sein.
    Das "paste as value" soll ansonsten im ganzen Sheet gelten.
     
  10. Hajo_Zi
    Hajo_Zi Erfahrener User
    das Stand im ersten Beitrag und der ist Grundlage für meinen Code.
    Ich bin jetzt raus. Diese Diskussion ist für mich sinnlos.
     
    Hajo_Zi, 20. Juni 2014
    #10
  11. Ja, Deine Beitrag habe ich gelesen.
    Ganz klar ist der aber nicht. Das was ich will funktioniert schließlich in der englischen Excel-Version. Hast Du meinen Code oben mal angesehen?
    Im Grunde müsste der ja nur fit für die deutsche Version gemacht werden. M.E. hat das mit der "Undo"-Funktion zu tun.
     
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden