Cellule identique / itération

Bonjour,

Je souhaiterais créer une macro ou utiliser une formule me permettant d'itérer automatiquement dans mes colonnes.

Clairement : si deux valeurs identiques dans ma colonne A alors au lieu d'avoir Toto en A1 & A2 je voudrais par exemple avoir toto1 en A1 et toto2 en A2 de manière automatique.

Des idées?

Merci d'avance

7 réponses

  1. Bonjour,

    Il y a la formule =EXACT() qui peut être combinée à =OU()
    Voir le lien ci-dessous pour plus de détails.
    http://office.microsoft.com/fr-001/excel-help/comparer-le-contenu-de-cellules-HP003056130.aspx

    Par contre je pense que ce que tu veux faire est impossible, ça génère ce qu'on appel une "référence circulaire"
    https://www.excel-plus.fr/intermed/techavanc/la-reference-circulaire/

    ça serait faisable si tu utilise 3 colonnes : une pour saisir les données brute (toto, toto, poto, moto..), une pour y insérer le résultat de comparaison, et une 3é pour le résultat final (toto1, toto2, poto, moto..)

    PS : la 3é colonne devrait contenir une formule de test dont le résultat dépend du contenu de la colonne 2.

    tiens nous au courant..
    1
    1. Bonjour

      Une solution via vba
      https://www.cjoint.com/?3Ikr5e4pN3L

      Cdlmnt
      0
      1. Bonjour,

        ça fonctionne très bien merci!!

        Cordialement
        0
      2. Re bonjour,

        En fait je viens de me rendre compte de quelque chose :

        Quand j'exécute la macro pour la première fois, j'ai bien toto1, toto 2 et toto 3.
        Par contre, en imaginant que quelqu'un reprenne le fichier et veuille relancer le vba en remettant toto: rien n'est identique mais on aura toto1, toto11, toto21 et toto31 (et ce à l'infini)

        Une idée de solution?

        Merci d'avance
        0
    2. Merci pour les réponses,

      J'essaye tout ça et je vous tient au courant :)
      0
      1. Faudrait peut-être séparer le texte du nombre et trouver le max pour chaque texte identique pour incrémenter de un à partir du max les prochaines valeurs après je ne connais pas trop le langage vba excel...
        0
        1. A vrai dire le gros souci, c'est que même si je sélectionne une seule case vide du tableur, il va me mettre des 1 à chaque fois que je lance la macro....

          Je sais pas comment régler ça...

          Merci d'avance,

          Cordialement
          0
          1. Le principe : nettoyer les "noms-chiffrés" avant d'envoyer le chiffrage
            Tu remplaces le code par celui-ci

            Public Function Nettoie(s As String) As String
            If Not IsNumeric(Right(s, 1)) Then
            Nettoie = s
            Else
            Nettoie = Nettoie(Left(s, Len(s) - 1))
            End If
            End Function

            Public Sub Ok()
            Dim plage As Range, cel As Range
            Dim obn As Object, cle As String, cles, k As Long, n As Long, numnom As Long, nom As String
            Set plage = Selection
            ' nettoyer plage
            For Each cel In plage
            cel.Value = Nettoie(cel.Value)
            Next cel
            ' numerotage
            Set obn = CreateObject("scripting.dictionary")
            For Each cel In plage
            cle = cel.Value
            If Not obn.exists(cle) Then obn.Add cle, 1
            Next cel
            cles = obn.keys
            n = obn.Count
            For k = 0 To n - 1
            nom = cles(k)
            numnom = 0
            For Each cel In plage
            If cel.Value = nom Then
            numnom = numnom + 1
            cel.Value = nom & numnom
            End If
            Next cel
            Next k
            End Sub

            RQ. Pour attribuer un raccourci clavier à la macro OK
            Depuis la feuille de calcul
            Outils/Macro
            Selectionner la macro OK
            Option/Raccourci clavier et mettre Ctrl+k (par exemple)

            Cdlmnt
            0
            1. Merci infiniment,
              C'est exactement ce qu'il me fallait,
              Cordialement,
              0
          2. De rien,

            Peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)

            Cdlmnt
            1