Private Sub CommandButton1_Click()
Dim iNoLigne As Integer
Application.ScreenUpdating = False
iNoLigne = ActiveCell.Row ' On récupère le N° de la ligne courante
With Range("A" & iNoLigne & ":C" & iNoLigne)
.Resize(1).EntireRow.Insert ' On insert une ligne vide
' On recopie les formats et formules de la ligne précédente
.EntireRow.Copy .Offset(-1).Resize(1).EntireRow
On Error Resume Next ' Au cas où il n'y ait pas de constantes
' On efface les valeurs constantes préentes dans la ligne
.Offset(-1).Resize(1).EntireRow.SpecialCells(xlConstants).ClearContents
End With
Application.ScreenUpdating = True
ActiveCell.Select
End Sub
Private Sub CommandButton2_Click()
Dim iNoLigne As Integer
Application.ScreenUpdating = False
iNoLigne = ActiveCell.Row ' On récupère le N° de la ligne courante
With Range("A" & iNoLigne & ":C" & iNoLigne)
' On supprime la ligne courante
.Resize(1).EntireRow.Delete
End With
Application.ScreenUpdating = True
ActiveCell.Select
End Sub
C'est effectivement un problème qui ne facilite pas la lecture. Pour ma part, j'utilise la feuille que je joins pour préparer le code des tableaux à trois colonnes. C'est pratique, pourvu qu'on colle le code avec la police à espacement fixe "Courier New".Edit : Désolé la mise en forme n'est pas conservée et ce qui était aligné initialement, ne le reste pas !
Ça complique sérieusement !Pour mémoire, je ne l'avais pas dit précédemment, Tout identifiant attribué une fois ne peut être réattribué à un élément. Ce qui complique la procédure de calcul.
Oui. Mais il y a encore une incertitude.Est-ce plus clair maintement ?
[COLOR="DarkSlateGray"][B]
LISTE A
[COLOR="White"]____[/COLOR][COLOR="White"]__[/COLOR]ID[COLOR="White"]__________________[/COLOR]NIV[COLOR="White"][/COLOR]
[COLOR="White"]___[/COLOR]1[COLOR="White"]__[/COLOR]SMP[COLOR="White"]_________________[/COLOR]1[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]2[COLOR="White"]__[/COLOR]SMP01[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]3[COLOR="White"]__[/COLOR]SMP02[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]4[COLOR="White"]__[/COLOR]SMP02AAA[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]5[COLOR="White"]__[/COLOR]SMP02AAB[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]6[COLOR="White"]__[/COLOR]SMP02AAB001[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]7[COLOR="White"]__[/COLOR]SMP02AAB002[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]8[COLOR="White"]__[/COLOR]SMP02AAC[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]9[COLOR="White"]__[/COLOR]SMP02AAD[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]10[COLOR="White"]__[/COLOR]SMP03[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]11[COLOR="White"]__[/COLOR]SMP03AAA[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]12[COLOR="White"]__[/COLOR]SMP03AAA001[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]13[COLOR="White"]__[/COLOR]SMP03AAA001AA[COLOR="White"]_______[/COLOR]5[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]14[COLOR="White"]__[/COLOR]SMP03AAA001AA01[COLOR="White"]_____[/COLOR]6[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]15[COLOR="White"]__[/COLOR]SMP03AAA001AA01AA[COLOR="White"]___[/COLOR]7[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]16[COLOR="White"]__[/COLOR]SMP03AAA001AA01AA1[COLOR="White"]__[/COLOR]8[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]17[COLOR="White"]__[/COLOR]SMP03AAA002[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]18[COLOR="White"]__[/COLOR]SMP03AAB[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]19[COLOR="White"]__[/COLOR]SMP03AAC[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]20[COLOR="White"]__[/COLOR]SMP04[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR][/B][/COLOR]
[COLOR="DarkSlateGray"][B]
LISTE B
[COLOR="White"]____[/COLOR][COLOR="White"]__[/COLOR]ID[COLOR="White"]__________________[/COLOR]NIV[COLOR="White"][/COLOR]
[COLOR="White"]___[/COLOR]1[COLOR="White"]__[/COLOR]SMP[COLOR="White"]_________________[/COLOR]1[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]2[COLOR="White"]__[/COLOR]SMP01[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]3[COLOR="White"]__[/COLOR]SMP02[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]4[COLOR="White"]__[/COLOR]SMP02AAA[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]5[COLOR="White"]__[/COLOR]SMP02AAB[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]6[COLOR="White"]__[/COLOR]SMP02AAB002[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]7[COLOR="White"]__[/COLOR]SMP02AAC[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]8[COLOR="White"]__[/COLOR]SMP02AAD[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]9[COLOR="White"]__[/COLOR]SMP04[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]10[COLOR="White"]__[/COLOR][COLOR="White"]____________________[/COLOR][COLOR="White"]___[/COLOR]
[COLOR="White"]__[/COLOR]11[COLOR="White"]__[/COLOR][COLOR="White"]____________________[/COLOR][COLOR="White"]___[/COLOR][/B][/COLOR]
[COLOR="DarkSlateGray"][B]
Liste C
[COLOR="White"]____[/COLOR][COLOR="White"]__[/COLOR]ID[COLOR="White"]__________________[/COLOR]NIV[COLOR="White"][/COLOR]
[COLOR="White"]___[/COLOR]1[COLOR="White"]__[/COLOR]SMP[COLOR="White"]_________________[/COLOR]1[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]2[COLOR="White"]__[/COLOR]SMP01[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]3[COLOR="White"]__[/COLOR]SMP02[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]4[COLOR="White"]__[/COLOR]SMP02AAA[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]5[COLOR="White"]__[/COLOR]SMP02AAB[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]6[COLOR="White"]__[/COLOR]SMP02AAB002[COLOR="White"]_________[/COLOR]4[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]7[COLOR="White"]__[/COLOR]SMP02AAC[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR]8[COLOR="White"]__[/COLOR]SMP02AAD[COLOR="White"]____________[/COLOR]3[COLOR="White"]__[/COLOR]
[COLOR="White"]___[/COLOR][COLOR="Red"]9[/COLOR][COLOR="White"]__[/COLOR][COLOR="White"]____________________[/COLOR][COLOR="Red"]2[/COLOR][COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]10[COLOR="White"]__[/COLOR]SMP04[COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR]
[COLOR="White"]__[/COLOR]11[COLOR="White"]__[/COLOR][COLOR="White"]____________________[/COLOR][COLOR="White"]___[/COLOR][/B][/COLOR]
[COLOR="DarkSlateGray"][B]1ère réponse :
[COLOR="White"]___[/COLOR]9[COLOR="White"]__[/COLOR]SMP0[COLOR="Red"][SIZE="4"]5[/SIZE][/COLOR][COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR][/B]
[B]Deuxième réponse :
[COLOR="White"]___[/COLOR]9[COLOR="White"]__[/COLOR]SMP0[COLOR="Red"][SIZE="4"]3[/SIZE][/COLOR][COLOR="White"]_______________[/COLOR]2[COLOR="White"]__[/COLOR][/B][/COLOR]
Ma question : Quelle est la ligne 9 correcte ?
Code:1ère réponse : ___9__SMP05_______________2__ Deuxième réponse : ___9__SMP03_______________2__
___9__SMP05_______________2__
Cette question est essentielle : si la première réponse est la bonne, il est clair que les suppressions et insertions de lignes ne peuvent pas être gérées sur la base de l'état de la liste à l'instant où elles sont exécutées. Il faudra conserver un historique complet de l'évolution de la feuille depuis sa création.
Pourquoi :
4 SMP02AAA 3 ? (à la première apparition du 3)
Je pensais qu'avec, code2 = Commence à "01" et fini à "ZZ", on aurait
4 SMP01AAA 3 ?
Pourquoi :
6 SMP02AAB001 4 ? (à la première apparition du 4)
Je pensais qu'on aurait
6 SMP01AAA001 4 ?
Bonjour,@ ROGER2327(...)
il faut gérer l'historique complet de l'évolution de la feuille depuis sa création pour obtenir les bonnes valeurs d'identifiant. Je n'avais pas assez poussé le raisonnement. De fait cela va compliquer sérieusement le processus de calcul ! Pas grave tant que je ne crée pas une "usine à gaz" !
Donc en mettant en place cette gestion d'historique cela répondrait aussi au besoin de suivi pour les suppressions de lignes.
Reste tout de même à choisir la manière de le faire. Laisser les lignes affichées mais marquées invalidées avec les risques de confusion déjà évoqués ou bien masquer à l'opérateur (si c'est possible ?) ces lignes invalides ou encore gérer ailleurs la liste des identifiants déjà attribués et marqués comme invalides ? Qu'en penses-tu ?
(...)
Ce serait trop beau ! Mais on y arrivera...@ ROGER2327(...)
Laissons "murir" je pense que cela viendra tout seul de fil en aiguille ...
(...)
Au contraire, s'il n'y a pas de contrainte de ce genre, mon idée est, pour des raisons d'encombrement, de conserver dans cette feuille non pas tous les identifiants mais seulement les valeurs effacées. Dès lors, à la création d'un identifiant, il suffira de tenir compte des valeurs effectivement présentes dans la feuille principale et de celles conservées dans la feuille auxiliaire.
Que pensez-vous de cela ?
Envoyé par ROGER2327
@ oracle7(...)
Ce serait trop beau ! Mais on y arrivera...
(...)
...donc je poursuis dans cette voie.@ ROGER2327(...)
1 - AUCUN PROBLÈME ! ROGER2327, l'idée est intéressante
(...)
Un masquage de la feuille annexe, voire une protection, n'est pas un gros obstacle.(...)
une petite restriction : c'est juste pour éviter que l'utilisateur final vienne mettre "son nez" si je puis dire, dans le contenu de cette feuille d'historique.
En clair y-a-t-il moyen de la masquer ou à défaut de lui en interdire l'accès ?
(...)
si W>=Y alors
___ si W>=X alors
______ si W-X>1 alors
_________ Erreur on rejette la valeur saisie W
______ sinon
_________ OK la valeur est acceptée
______ fsi
___ sinon
______ OK la valeur est acceptée
___ fsi
sinon
___ Erreur qq soit W par rapport à X on rejette W
fsi
NIV 1 : constante : "S"
NIV 2 : Alphabétique : Bigramme : "XX"
NIV 3 : Numérique : 01... 99, 0A... 0Z, 1A, 1B... 9A... 9Z, AA... AZ, BA... BZ... ZZ soit 915 combinaisons
NIV 4 : Alphanumérique : AAA... ZZZ, A0A... A9A... Z0Z... Z9Z soit 19584 combinaisons
NIV 5 : NumériqueAlpha : 001... 999, 0A0... 0A9... 0Z0... 9Z9 soit 3399 combinaisons
NIV 6 : Alphabétique : AA... AZ, BA... BZ... ZZ, A0... A9... Z0... Z9, 00... 99 soit 916 combinaisons
NIV 7 : Numérique : 01... 99, 0A... 0Z, 1A, 1B... 9A... 9Z, AA... AZ, BA... BZ... ZZ soit 915 combinaisons
NIV 8 : Alphabétique : AA... AZ, BA... BZ... ZZ, A0... A9... Z0... Z9, 00... 99 soit 916 combinaisons
NIV 9 : Numérique : 1... 9, A... Z soit 33 combinaisons