inserer un espace automatique entre deux chiffres a l'encodage DANS EXCel 2007

DENVER51

XLDnaute Nouveau
Bonjour à tous
C'est la première fois que je viens sur ce forum, et mes connaissances sur excel sont très limitées.
Voici mon problème
J'ai une liste de chiffre dans une colonne d'un tableau excel

Par exemple colonne C5 40110
colonne C6 4011155
colonne C7 401112
Mon problème
Je voudrais avoir automatiquement cette présentation lors de la frappe:
colonne C5 4011 0
colonne C6 4011 155
colonne C7 4011 12
Je ne connait strictement rien en VBA et j'ai essayé des mises en forme personnalisés mais je n'obtiens pas ce que je veux sauf si je le fait ligne par ligne. J'ai 2251 lignes à adapter.
Je ne travaille pas depuis longtemps sur excel. Je vous remercie par avance de votre attention.
DENVER51
 

job75

XLDnaute Barbatruc
Re : inserer un espace automatique entre deux chiffres a l'encodage DANS EXCel 2007

Bonjour DENVER51, bienvenue sur XLD,

Clic droit sur l'onglet, Visualiser le code et y coller cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, t As String
Set r = Intersect(Target, [A:A], Me.UsedRange) 'colonne A
If r Is Nothing Then Exit Sub
For Each r In r 'en cas d'entrées mutiples
  If Not r.Text Like "?? #### *" Then
    t = Replace(r.Text, " ", "")
    If t Like "??####*" Then
      t = Application.Replace(t, 3, , " ")
      r = Application.Replace(t, 8, , " ")
    End If
  End If
Next
End Sub
Les entrées en colonne A sont contrôlées.

A+
 

chris

XLDnaute Barbatruc
Re : inserer un espace automatique entre deux chiffres a l'encodage DANS EXCel 2007

Bonjour

Si j'ai bien compris, format personnalisé
Code:
[<100000]0000" "0;[<1000000]0000" "00;0000" "000

Edit Coucou JHA, pas rafraîchi.
 

job75

XLDnaute Barbatruc
Re : inserer un espace automatique entre deux chiffres a l'encodage DANS EXCel 2007

Re,

Pardon, j'avais mal compris le post #1 :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, t As String
Set r = Intersect(Target, [C:C], Me.UsedRange) 'colonne C
If r Is Nothing Then Exit Sub
For Each r In r 'en cas d'entrées mutiples
  If Not r.Text Like "#### *" Then
    t = Replace(r.Text, " ", "")
    If IsNumeric(t) Then r = Application.Replace(t, 5, , " ")
  End If
Next
End Sub
La colonne C est contrôlée.

Edit : hello chris :) en effet un format personnalisé fait bien l'affaire.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 102
Messages
2 085 302
Membres
102 857
dernier inscrit
Nony1931