Bonsoir à vous tous,
et comme l'intitulé du sujet n'est surement pas clair, je vais tenter de vous éclairer sur mon problème.
En gros, j'essaye de trouver une macro qui me permettrait de remplir des cellules (d'une même colonne) en fonction d'une valeur initiale "X", à partir de 1 avec incrémentation de +1 jusqu'à atteindre la valeur initiale "A" .
Bon, pour cela, il existe la simple formule:
en cellule [A7]
où, pour le tableur utilisé, [B1] donne la valeur à atteindre (de 3 à 40), [A7] la cellule à partir de laquelle l'incrémentation commence (avec pour départ [A6] = 1)
et cela de [A7] jusque [A95] voire plus.
S'il n'y avait que ça, aucun problème. Formule bateau. Mais le problème se corse car je n'ai pas qu'une valeur initiale mais 4.
valeur "X" ([B1] dans le cas cité au-dessus)
Valeur "A": lorsque la valeur A est atteinte, les cellules (par ligne) suivantes doivent reprendre de 1 jusque "B" avec cette fois l'ajout d'un texte avant le chiffre (soit "cpltA_", ce qui donne "cpltA_1" jusque "cpltA_[valeur B]")
Valeur "B": idem, dans les cases qui suivent la valeur B atteinte avec un autre texte concaténé ("cpltB_") et le décompte s’arrête lorsque la valeur B est atteinte
Valeur "C": même principe mais le texte devient "cpltC_"
Les valeurs X, A, B et C sont chiffrables (de 1 à 40) et notées par l'utilisateur.
Chacune doit normalement dans cet ordre et non de manière chaotique et le tout de haut en bas sur une même colonne.
Donc, j'ai essayé de bidouiller la formule précédente avec des "SI" partout mais ça ne fonctionne pas. Non seulement les textes ne sont pas concaténés avec les cellules contenant les chiffres, mais en plus, je n'arrive pas à faire en sorte qu'une fois la valeur initiale atteinte, la cellule suivante reprend à 1 jusqu'à atteindre la deuxième valeur. Ca part sur une boucle.
Peut-être qu'une macro faciliterait la tâche mais je me perds totalement dans les "IF THEN ELSE" "RANGE" ou "FOR EACH". Désolé car je n'ai aucune compétence en vba et le temps disponible ne me permet pas de m'y pencher convenablement.
Après tout ce blabla et des recherches à droite, à gauche, je me tourne vers vous pour trouver une aide précieuse et salvatrice.
Merci par avance.
PS: vous trouverez un exemple en pièce jointe pour clarifier le tout.
et comme l'intitulé du sujet n'est surement pas clair, je vais tenter de vous éclairer sur mon problème.
En gros, j'essaye de trouver une macro qui me permettrait de remplir des cellules (d'une même colonne) en fonction d'une valeur initiale "X", à partir de 1 avec incrémentation de +1 jusqu'à atteindre la valeur initiale "A" .
Bon, pour cela, il existe la simple formule:
en cellule [A7]
Code:
SI(A6>=$B$1;"";A6+1)
et cela de [A7] jusque [A95] voire plus.
S'il n'y avait que ça, aucun problème. Formule bateau. Mais le problème se corse car je n'ai pas qu'une valeur initiale mais 4.
valeur "X" ([B1] dans le cas cité au-dessus)
Valeur "A": lorsque la valeur A est atteinte, les cellules (par ligne) suivantes doivent reprendre de 1 jusque "B" avec cette fois l'ajout d'un texte avant le chiffre (soit "cpltA_", ce qui donne "cpltA_1" jusque "cpltA_[valeur B]")
Valeur "B": idem, dans les cases qui suivent la valeur B atteinte avec un autre texte concaténé ("cpltB_") et le décompte s’arrête lorsque la valeur B est atteinte
Valeur "C": même principe mais le texte devient "cpltC_"
Les valeurs X, A, B et C sont chiffrables (de 1 à 40) et notées par l'utilisateur.
Chacune doit normalement dans cet ordre et non de manière chaotique et le tout de haut en bas sur une même colonne.
Donc, j'ai essayé de bidouiller la formule précédente avec des "SI" partout mais ça ne fonctionne pas. Non seulement les textes ne sont pas concaténés avec les cellules contenant les chiffres, mais en plus, je n'arrive pas à faire en sorte qu'une fois la valeur initiale atteinte, la cellule suivante reprend à 1 jusqu'à atteindre la deuxième valeur. Ca part sur une boucle.
Peut-être qu'une macro faciliterait la tâche mais je me perds totalement dans les "IF THEN ELSE" "RANGE" ou "FOR EACH". Désolé car je n'ai aucune compétence en vba et le temps disponible ne me permet pas de m'y pencher convenablement.
Après tout ce blabla et des recherches à droite, à gauche, je me tourne vers vous pour trouver une aide précieuse et salvatrice.
Merci par avance.
PS: vous trouverez un exemple en pièce jointe pour clarifier le tout.