Calcul Itératif

bonjour la famille.

certainement pas de VBA aujourd'hui

mais j'ai besoin de votre aiide astuce !

nomagecode
Axel25P01
Romy29P02

J'aimerai avoir une formule dans laquelle si j'insère une novelle ligne à mon tableau, que le code s'ajoute automatiquement de façon ittérative.

càd, si j'ajoute par exemple une troisième ligne de donnée, qu'un code soit généré automatiquement (P03) ainsi de suite

svpl...

Bonjour Romaric et le forum

Si ton tableau commence en A1, il suffit de mettre la formule suivante en C2 et tirer vers le bas.

="P"& TEXTE(LIGNE()-1;"00")

Cdt

Papy Henri

Bonsoir,

une question : ce code devient-il un numéro d'identification unique associé au nom pour lequel il a été créé ?
Si c'est le cas, alors point de formule qui alors ne supporterait pas les tris dans le tableau...

Alors dans ce cas de création d'ID, s'il faut que ce soit automatisé, alors VBA sera là...

@ bientôt

LouReeD

Bonjour mes grands.

la formule donnée @AFEH correspond bien à ma demande et ça a marché.

Cependant, pour approfondir, et rendre unique, si vous avez un code VBA, ça me ferait plaisir

Bonjour Romaric et et le forum

Sans prétention aucune, voici une idée avec un formulaire de saisie.
Cdt
Papy Henri

3romaric-test1.xlsm (22.46 Ko)

merci infiniment

votre code vient de m'aider à m'améliorer sur un certain nombre de points

Bonsoir,

juste une petite modification sur le code du clic sur la ListBox afin de "supporter" le déplacement éventuel de ce tableau sur la feuille :

Private Sub ListBox1_Click()
    Dim position As Long
        With [Tableau1]
        position = .Find(ListBox1, LookIn:=xlValues, lookat:=xlWhole).Row - .Row + 1
        TextBox1 = .Item(position, 1)
        TextBox2 = .Item(position, 2)
        TextBox3 = .Item(position, 3)
    End With
End Sub

En fait on prend le numéro de ligne de la feuille Excel où se trouve la valeur cherchée :
.Find(ListBox1, LookIn:=xlValues, lookat:=xlWhole).Row
puis on en soustrait le numéro de la ligne de feuille Excel où se trouve l'entête du tableau, et on ajoute 1 afin de "tomber" sur la première ligne de données.

@ bientôt

LouReeD

Merci @LouReed

Effectivement, je ne sais pas pourquoi j'ai changé la méthode que j'avais trouvée dans ce forum.

Private Sub ListBox1_Click()
    Dim position As Long, result
        With [Tableau1]
        Set result = .Find(ListBox1, LookIn:=xlValues, LookAt:=xlWhole)
        position = result.Row - .Row + 1
      '  position = .Find(ListBox1, LookIn:=xlValues, LookAt:=xlWhole).Row - .Row + 1
        TextBox1 = .Item(position, 1)
        TextBox2 = .Item(position, 2)
        TextBox3 = .Item(position, 3)
    End With
End Sub

Cdt
Papy Henri

Rechercher des sujets similaires à "calcul iteratif"