Numérotation dans le désordre

Bonjour, alors voilà j'ai un petit problème et comme je ne suis encore qu'un débutant en VBa j'ai beaucoup de mal à trouver la solution.

Voici mon problème :

A1:A30 correspond à la plage ou j'écris quelques choses, B1:B30 est la case de numérotations " par rapport à A1:A30 "

Exemple : si j'écris en A1: Manger en B1 je veux qu'il soit numéroter par 1 car c'est la première fois que j'écris

puis dans la plage entre A1:A30 si j'écris en A22 juste après j'aimerais que B22 soit numéroter "2" car c'est la seconde fois que j'écris dans la plage.

Si je reviens au dessus j'aimerais que cette numérotation continue

exemple : Si alors que j'ai écris en A1(1) et en A22 (2) je revenais en A14 pour écrire je voudrais qu'en B14 la numérotations soit de 3 et que la numérotations reste dans l'ordre dans lequel j'ai écris des choses, donc voilà mon petit soucis, j'ai beaucoup chercher en formules normales mais je n'ai pas trouver de formules qui fonctionne pour faire ça, c'est pourquoi je m'adresse à la communauté, merci d'avance.

Bonsoir,

Que se passe-t-il si une cellule doit être effacée ?

Bonjour j'ai tester votre fichier et c'est parfait, je me demandais juste comment je faisait si je voulais répéter l'action pour les lignes un peu plus bas aussi ( ex: Jusqu'à A40) ? que devrais je modifier dans le fichier VBA ou plutôt que devrais-je répéter ?

Et

Merci beaucoup pour votre aide.

Il faut modifier la taille du tableau structuré. Pour cela, sélectionnez une cellule du tableau. A ce moment, le menu Création de tableau apparaît au bout du ruban Excel. En y accédant, vous pourrez redimensionner le tableau.

capture1 capture

Merci beaucoup c'est parfait mais ce n'est pas exactement ce que je voulais dire, je me suis mal exprimer, ce que je voulais dire c'était plus si je veux avoir un second tableau " exactement le même " mais qui recommence à 1 en gardant le premier mais en pouvant le recopier en gardant ses particularité à l'infinie comment devrais je faire ?

J'aimerais aussi savoir comment copier tout ça dans mon tableau en gardant toutes les propriétés de cette feuille, dois-je copier tout le code dans mon classeur ?

Si le tableau structuré dans le même onglet, le nom du tableau va s'incrémenter : ici t_Saisie2

capture

Il vous suffira ensuite de modifier l'événement dans le module de votre onglet en ajoutant le même code pour le nouveau tableau :

     Private Sub Worksheet_Change(ByVal Target As Range)

      If Target.Count > 1 Then Exit Sub

      If Not Intersect(Target, Range("t_Saisie[Saisie]")) Is Nothing Then
         If Target <> "" Then
            Target.Offset(0, 1) = Numerotation
         Else
            Target.Offset(0, 1) = ""
         End If
      End If

       If Not Intersect(Target, Range("t_Saisie2[Saisie]")) Is Nothing Then
         If Target <> "" Then
            Target.Offset(0, 1) = Numerotation
         Else
            Target.Offset(0, 1) = ""
         End If
      End If

End Sub

Si le tableau est exporté dans un nouvel onglet, si celui-ci est existant vous dupliquez l'événement et vous changez le nom du tableau. Si c'est un nouvel onglet, alors il vaut mieux dupliquer l'onglet d'origine et changer le nom du tableau dans l'événement.

Bonjour le problème quand je copie le tableau et que je recopie le code et commence a saisir dans la colonne saisie du ""Tsaisi2" il ne suit pas ce que fais et il n'est pas indépendant " le tableau est synchronisé avec l'autre hors moi je veux qu'ils soit indépendant", j'ai pourtant recopier parfaitement le code, y'a t'il quelques chose que j'ai mal fait ?

En gros le problème actuelle est que lorsque j'écris dans le tableau il ne recopie la série correctement que sur le T_saisie1 mais pas sur Tsaisie2, sur celui ci il prend le dernier numéro de t_saisie1 et ajoute +1, c'est pourquoi je dis qu'il n'est pas indépendant, car de lui même si je n'écris pas dans le Tsasie1 il m'écris toujours le même numéro

capture d ecran 34

Autant pour moi,

Abandonnez la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)

      If Target.Count > 1 Then Exit Sub

      If Not Intersect(Target, Range("t_Saisie[Saisie]")) Is Nothing Then
         If Target <> "" Then
            Target.Offset(0, 1) = WorksheetFunction.Max(Range("t_Saisie[Saisie]").Offset(0, 1)) + 1
         Else
            Target.Offset(0, 1) = ""
         End If
      End If

       If Not Intersect(Target, Range("t_Saisie2[Saisie]")) Is Nothing Then
         If Target <> "" Then
            Target.Offset(0, 1) = WorksheetFunction.Max(Range("t_Saisie2[Saisie]").Offset(0, 1)) + 1
         Else
            Target.Offset(0, 1) = ""
         End If
      End If

End Sub

Je vous remercie beaucoup c'est nickel, je n'aurai jamais trouver, merci vous avez égayer ma journée. Cependant il y a un tout dernier truc, vraiment désolé du dérangement, j'aimerai pouvoir renvoyer la position d'une cellule avec la colonne "saisie" mais dès que je clic dedans et mets un "=" il le considère comme une lettre, et en plus de ça ne fait plus de numérotations. J'avais oublié de préciser car je pensais que ce serais bon directement mais enfaite non, vraiment désolé du dérangement.

En gros moi ce dont j'ai vraiment besoin c'est "imaginons le tableau soi en B1:C30" je veux renvoyer la position de ce que j'écris en A1 automatiquement en B2 et donc numéroté en C3, mais dès que je rentre un "=" le fichier cesse de numéroter et je ne peux pas renvoyer la position qui se trouve en A1 en B1

Vous pourriez préciser ce que vous souhaitez obtenir avec un exemple ?

capture d ecran 35

En gros j'aimerais pouvoir dans cette exemple renvoyer la position de H2 " ou plutôt ce qui y est écrit" en I2 et que ça fasse comme si je l'écrivais en I2 et que ça numérote en J2, enfaite tout pareil que le tableau de base mais juste avec la possibilité de renvoyer un texte qui n'est pas vraiment dans la cellule

L'image est trop claire...

Ce que je comprends, c'est que vous voulez saisir dans la colonne H et numéroter dans la colonne J, est-ce bien cela ?

En Gros c'est ça, je veux saisir en H2 et que ce soit numéroter en J2, tout en écrivant ce qu'il y a en H2 dans la cellule I2, enfaites tout pareil mais juste avec la possibilité de renvoyer, ce qu'il y a dans une cellule, a l'intérieur de la colonne "I" et ce serait comptabiliser comme si j'avais écrit quelques chose à l'interieur de la colonne "I" or que cela viendrait d'une tout autre colonne mais resterais lisible en "I" ET numéroter en J

capture
       If Not Intersect(Target, Range("t_Saisie3[Colonne1]")) Is Nothing Then
         If Target <> "" Then
            Target.Offset(0, 1) = Target
            Target.Offset(0, 2) = WorksheetFunction.Max(Range("t_Saisie3[Colonne1]").Offset(0, 2)) + 1
         Else
            Target.Offset(0, 1) = ""
            Target.Offset(0, 2) = ""
         End If
      End If

C'est ça, mais toujours pas enfaite je ne veux pas que la colonne H soi dans le tableau car en réalité elle n'est pas du tout coller par rapport à ce tableau, c'était pour l'exemple, autant pour moi j'ai pris un mauvais exemple.

En gros

Imaginons que ce soit la colonne F2"colonne qui n'a rien à voir avec le tableau" que je voudrais mettre dans la colonne I2 et la numéroter en cellule J2, voilà pourquoi je parlais d'un " = " et de renvoyer une valeur d'une autre cellule, car la cellule en question n'a rien à voir avec le tableau mais elle est juste sur la même ligne

En tout cas merci à vous, J'attends votre retour pour savoir si c'est possible

Soient deux tableaux structurés

capture
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Decalage As Integer

      If Target.Count > 1 Then Exit Sub

       If Not Intersect(Target, Range("t_Colonne1[Colonne1]")) Is Nothing Then
          Decalage = Range("t_Saisie3[Saisie]").Column - Range("t_Colonne1[Colonne1]").Column
         If Target <> "" Then
            Target.Offset(0, Decalage) = Target
            Target.Offset(0, Decalage + 1) = WorksheetFunction.Max(Range("t_Saisie3[Numéro]")) + 1
         Else
            Target.Offset(0, Decalage) = ""
            Target.Offset(0, Decalage + 1) = ""
         End If
      End If

End Sub

Franchement un grand merci, c'est parfait c'est génial, ça marche parfaitement, bon je voulais pas de seconde colonne mais force est de constater que sans cela ç'aurait été très compliquer de le faire, je te remercie pour tout, tu as parfaitement géré, mille merci vraiment, c'est un grand coup de pouce que tu m'a donner. Je te souhaite une bonne journée et encore merci.

Rechercher des sujets similaires à "numerotation desordre"