Inserer des points entre chaque chiffres + le chiffre 1

Bonjour à tous,

un client me fait parvenir régulièrement ce type de fichier, que je doit mettre en forme avant de l’importer dans mon logiciel ERP pour éviter la ressaisie à l'interieur de ce dernier.

problème sa numérotation n'est pas régulière...( des points réguliers entre les chiffres sont necessaires au calque d'importation pour l'ERP)

je souhaiterai obtenir le resultat suivant:

colonne A: base

une base de chiffre avec ou sans point

435

435.1

colonne B: resultat souhaité

chaque chiffre séparé par un "point" avec le chiffre " 1" à la fin en supplément

4.3.5.1

4.3.5.1.1

merci d'avance

dans l'attente de votre retour à ce sujet, si une solution est envisageable

cordialement

Bonjour,

Proposition d'une fonction personnalisée (à voir dans Module1) :

Function CODERP(num) As String
    Dim cod(), n%, i%, k$, kk$
    Application.Volatile
    kk = CStr(num)
    For i = 1 To Len(kk)
        k = Mid(kk, i, 1)
        If IsNumeric(k) Then
            ReDim Preserve cod(n)
            cod(n) = k: n = n + 1
        End If
    Next i
    If n > 0 Then
        ReDim Preserve cod(n): cod(n) = 1
    Else
        CODERP = "": Exit Function
    End If
    CODERP = Join(cod, ".")
End Function

Et voir utilisation dans ton fichier en col. B.

Cordialement.

Bonjour,

avec une fonction personnalisée

Function Ponctuation(cel As Range) As String
Ponctuation = Replace(Replace(CStr(cel.Value), ".", ""), " ", "")
If Len(Ponctuation) = 0 Then Exit Function
For i = 1 To Len(Ponctuation)
    prov = prov & Mid(Ponctuation, i, 1) & "."
Next
Ponctuation = prov & "1"
End Function

edit : Bonjour MFerrand ... j'étais aussi en train de travailler dessus !

Bonjour, MFerrand et Steelson

çà ne m'étonne pas de vous ces excellents codes ; J'étais encore en train de réfléchir pour me débarrasser

des espaces dans la colonne "Base"

Vous êtes trop rapide pour moi … les "Lucky luke" du vba

MFerrand a tirer plus vite que mon ombre !

Bonjour, MFerrand et Steelson,

Un enorme merci, et quelle réactivité ! j'en reviens toujours pas ..

excusez moi encore de vous solliciter, mais j'ai essayer de copier la formule pour l'appliquer à mon fichier d'origine et aussi ur m'en servir pour mes prochains fcihers à venir, mais ce la ne fonctionne pas..

pouvez vous m'aider svp ?

cordialement

Salut Steelson, Xmenpf !

Ça c'est le hasard ! Si j'avais été faire mon café avant de répondre... J'y vais d'ailleurs !

Pour l'utiliser il faut placer le code VBA de la fonction dans un module standard de ton classeur.

Alt+F11 pour accéder à l'éditeur.

Menu Insertion > Module (dans l'éditeur), pour générer un module standard.

Et dans ce module tu colles le code en entier que tu as préalablement copié.

Cordialement.

excusez moi encore de vous solliciter, mais j'ai essayer de copier la formule pour l'appliquer à mon fichier d'origine et aussi ur m'en servir pour mes prochains fcihers à venir, mais ce la ne fonctionne pas..

Trop tard encore une fois il avait finit son café

@BAT85 (de Vendée ?)

C'est bon maintenant (j'ai terminé le café aussi)

Trop tard encore une fois il avait finit son café

Ben, non ! Car la question est arrivée au moment où je lâchais ma réponse, j'ai juste prolongé...

Mais depuis, le café a été bu !

Et le problème résolu ?

si oui ...

oui de vendée !!

je vais essayer de suivre vos instructions à la lettre ..

cordialement

Pour l'utiliser il faut placer le code VBA de la fonction dans un module standard de ton classeur.

Alt+F11 pour accéder à l'éditeur.

Menu Insertion > Module (dans l'éditeur), pour générer un module standard.

Et dans ce module tu colles le code en entier que tu as préalablement copié.

Cordialement.

bonjour à tous,

j'ai honte de mon niveau sur excel, je ne connais pas le principe de VBA, j'ai suivi tes instructions à la lettre mais rien ne se passe une fois que j'ai collé le code,

le module à été créer et ...?

je me sens tout petit..

est ce que quelqu'un veut bien me tendre la perche tel un enfant paniqué dans le grand bassin..

cordialement

Une fois le code mis dans le module, si rien ne s'affiche en rouge, c'est qu'il a des chances d'être correctement collé, tu retournes sur excel pour utiliser la fonction, comme les autres fonctions d'excel, en composant la formule (voir fichier modèle).

Cordialement.

Bonjour,

ça ne fonctionne que dans la fichier que vous m'avez renvoyer , je n 'ai pas acces à la Fx dans les autres fichiers ?

est ce normale? si oui pour quelles raisons ?

cordialement

Dès que tu as placé le code dans le module, la fonction devient disponible.

En tapant la formule dans une cellule : =CO...., elle figure dans la liste proposée par l'assistant (comme toutes les fonctions.

Es-tu sûr que tu l'as bien placée dans Module1 (comme tu ne devais pas en avoir d'autre, il doit porter ce nom...) ?

Bonjour,

oui, je confirme avec la capture d'écran en pièce jointe, qu'il y a bien le module 1

cordialement

26vba-pour-dpgf.pdf (306.07 Ko)

Visuellement c'est bon. La fonction devrait être opérationnelle...

Il faut peut être voir tes paramètres macro :

si tu disposes de l'onglet développeur dans le ruban tu y vas, et tu cliques sur Paramètres des macros dans le groupe Visual Basic.

si tu ne l'a pas, tu passes par les Options > Centre de gestion de la confidentialité > Paramètres du Centre.... > Paramètres des macros

Dans les paramètres macros, tu t'assures que : Désactiver toutes les macros avec notification, est coché,

et tu coches aussi : Accès approuvé au modèle d'objet du projet VBA.

Tu en profites pour activer aussi l'onglet Développeur, dans les Options > Personnaliser le ruban : tu coches Développeur.

Tu valides...

Tu enregistres ton classeur, tu le fermes, tu le rouvres : il te sera demandé d'activer ou non les macros. Tu actives et la fonction sera disponible et utilisable dans ton classeur.

Cordialement.

bonsoir,

  • effectivement la case : Accès approuvé au modèle d'objet du projet VBA. n'était pas activée.
  • l'onglet développeur était déjà en place.

mais cela ne change rien..

j'ai oublié de te dire que j'avais un message d'erreur (voir piece jointe)

çà viens peut être de là ?

cordialement

Rechercher des sujets similaires à "inserer points entre chaque chiffres chiffre"