Copier le résultat d'une mise en forme

bonjour à tous, et surtout une très bonne année !!!!

Voici mon soucis, j'ai dans une cellule le nombre 401201200101, j'applique la mise en forme personnalisée suivante 0000-000-000-00

du coup mon nombre ce transforme en 4012-012-001-01.

Est il possible de mettre le résultat de ma mise en forme en valeur ?

Merci d'avance pour votre aide

Sinon, est il possible par une autre méthode d'obtenir la valeur 4012-012-001-01 en transformant une cellule 401201200101

Salut,

Encore une fois, partagez vos fichier si possible c'est bcp plus simple pour aider...

Je ne suis pas sûr d'avoir compris: Tu sais convertir 401201200101 vers -> 4012-012-001-01 et tu cherches à convertir

4012-012-001-01 vers -> 401201200101 ?

Est il possible de mettre le résultat de ma mise en forme en valeur ?

Comment ça mettre en valeur ? tu veux faire une mise en forme conditionnelle sur ce nombre ? ou tu veux transformer en valeur/nombre

Bonjour

Est il possible de mettre le résultat de ma mise en forme en valeur ?

Que veux-tu dire ?.

En faisant ce que tu dis ton nombre reste bien une valeur. !

Bye !

Bonjour,

je sais convertir 401201200101 vers -> 4012-012-001-01 avec une mise en forme

Après quand je la sélectionne la cellule 4012-012-001-01, dans la barre de formule j'aimerais voir 4012-012-001-01 et non 401201200101

en espèrent être clair

merci

Bonjour,

Vous pouvez essayer avec la fonction TEXTE, si j'ai bien compris :

=TEXTE(A1;"0000-000-000-00")

Ou alors avec ce code dans le module de la feuille en question :

private sub worksheet_change(byval target as range)

if target.address = "$A$1" then
    if isnumeric(target) and len(target) = 12 then
        application.enableevents = false
        target = application.text(target, "0000-000-000-00")
        application.enableevents = true
    end if
end if

end sub

Le changement en cellule A1 (à adapter ensuite) déclenchera le changement de valeur...

Cdlt,

Merci 3GB,

La deuxième solution est la bonne, peut on l'adapter a toute la colonne A ?

Merci d'avance

Oui, voici un essai (dédicassé à Gabin37 ):

private sub worksheet_change(byval target as range)

dim r as range

if target.column = 1 then
    set r = intersect(target, columns(1))
    for each cell in r
        if isnumeric(cell) and len(cell) = 12 then
            application.enableevents = false
            cell = application.text(cell, "0000-000-000-00")
            application.enableevents = true
        end if
    next cell
end if

end sub

Cdlt,

3GB je valide

Bonne journée à tous

Pour toutes les cellules de la colonne 1, ça ne fonctionne pas

Pour toutes les cellules de la colonne 1 ? Qu'est-ce qui ne marche pas ? Pouvez-vous déposer un fichier exemple ?

Cdlt,

10classeur1.xlsm (15.71 Ko)

Dans la a1 j'ai utilisé votre premier code et le résultat est exactement ce que je voulait

ensuite je l'ai remplacé par votre 2ème code pour que toute les cellules de la colonne aient le même principe

mais je n'ai pas eu de changement

3GB je me permet de répondre?

cell.value = application.text(cell, "0000-000-000-00")

Il y avait une petite coquille dans le code, corrige cette ligne avec "Cell.value" et normalement tout fonctionne nicouctout

A+

Un grand merci à vous deux C'est exactement ce que je voulais

Ca a marché en rajoutant la propriété .value. Voici le code mis à jour :

Private Sub Worksheet_Change(ByVal target As Range)

Dim r As Range
Set r = Intersect(target, Me.Columns(1))

If Not r Is Nothing Then
    For Each cell In r
        If IsNumeric(cell.value) And Len(cell.value) = 12 Then
            Application.EnableEvents = False
            cell.Value = Application.Text(cell.Value, "0000-000-000-00")
            Application.EnableEvents = True
        End If
    Next cell
End If

End Sub

et le fichier :

Cdlt,

4classeur1.xlsm (15.74 Ko)

Edit : Exactement, j'ai été négligeant avec la propriété value... Merci Gabin !

Rechercher des sujets similaires à "copier resultat mise forme"