Microsoft Excel

Herbers Excel/VBA-Archiv

Änderung bei Eingabe | Herbers Excel-Forum


Betrifft: Änderung bei Eingabe von: Petra
Geschrieben am: 24.11.2009 12:37:20

Schönen Tag allerseits,
mein Problem:
in Zellen der Spalte E gebe ich div.Zahlenkombinationen ein. Diese können 5 oder 6 oder 7 oder 8 stellig sein. Ich möchte jetzt, das bei(nach) der Eingabe der Zelleninhalt 10stellig, also mit führenden Nullen ist ,(kein Format!!), sondern als 10stell. Text.
Wie muß da der Code lauten?
Wer kann mir helfen?

LiebeGrüß Petra

  

Betrifft: AW: Änderung bei Eingabe von: {Boris}
Geschrieben am: 24.11.2009 12:44:12

Hi Petra,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_Handler
With Target
   If .Column = 1 And .Count = 1 Then
      Application.EnableEvents = False
      .NumberFormat = "@"
      .Value = Format(.Value, "0000000000")
   End If
End With
Err_Handler:
Application.EnableEvents = True
End Sub
Grüße Boris


  

Betrifft: AW:DANKE Boris klappt prima! oT von: Petra
Geschrieben am: 24.11.2009 12:48:04




  

Betrifft: @Boris : 2 Korrekturvorschläge ;-) von: NoNet
Geschrieben am: 24.11.2009 12:50:55

Moin {Boris},

Du warst zwar schneller, aber 1 Fehler drin und 1 Korrekturvorschlag :

[/klugsch**$$ModusEIN]
If .Column = 1 sollte wohl If .Column = 5 heißen, da Spalte E ;-)
Markiere mal A1:G10 und gib den Wert 123456 ein und bestätige mit Strg+ENTER....

[/klugsch**$$ModusAUS]
Salut, NoNet


  

Betrifft: Zahlen 10-stellig als Text darstellen von: NoNet
Geschrieben am: 24.11.2009 12:47:24

Hallo Petra,

kopiere diesen VBA-Code in das Klassenmodul des entsprechenden Tabelleblattes (Rechtsklick im Blattregister unten - "Code anzeigen") :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    
    Application.EnableEvents = False
    For Each rngZelle In Intersect(Target, [E:E])
        If IsNumeric(rngZelle.Value) And Len(rngZelle.Value) < 8 Then
            rngZelle.NumberFormat = "@"
            rngZelle.Value = Format(rngZelle, String(10, "0"))
        End If
    Next
    Application.EnableEvents = True
End Sub
Gruß, NoNet


  

Betrifft: AW: @Nonet auch Dir DANKE, funzt! oT von: Petra
Geschrieben am: 24.11.2009 12:49:03




  

Betrifft: noch eine Version von: Tino
Geschrieben am: 24.11.2009 12:52:29

Hallo,

kommt als Code in Tabelle1

Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Bereich As Range 
 
Set Bereich = Intersect(Range("E2:E" & Rows.Count), Target) 
 
If Not Bereich Is Nothing Then 
 With Application 
  .ScreenUpdating = False 
  .EnableEvents = False 
     
    For Each Bereich In Bereich 
     With Bereich 
        If .Value <> "" And IsNumeric(.Value) Then _
        .Value = Format(.Value, "'0000000000") 
     End With 
    Next Bereich 
   
  .ScreenUpdating = True 
  .EnableEvents = True 
 End With 
End If 
End Sub 
 
 



Gruß Tino


  

Betrifft: AW:@Tino auch Dir DANKE oT von: Petra
Geschrieben am: 24.11.2009 12:54:07




Beiträge aus den Excel-Beispielen zum Thema "Änderung bei Eingabe"