RESOLU Fonction Incrémentation

sebamak

XLDnaute Nouveau
Bonjour à tous,
Je suis encore loin d'être un pro en VBA et c'est pourquoi je voudrais vous solliciter pour un petit problème que je n'arrive pas à résoudre (C'est souvent le but d'un forum je pense)
Voilà, je cherche à créer une fonction qui me permettrait de réaliser une petite opération qui na l'air de rien comme ça, mais s'avère être plus compliqué que je ne le pensais.:confused:
Je voudrais insérer dans une cellule la valeur d'une autre cellule puis réaliser un calcul avec (genre : +1 ou *5 ou /2 ou -8 etc.)
Exemple : dans la cellule A2, je voudrais récupérer la valeur de la cellule A1+1.
Facile me direz-vous.
Certes ! Mais ce qui complique la chose, c'est que cette formule est dans une ligne que j'insert automatiquement et n'importe où dans une liste.
Ce qui fait que si j'insert une première ligne, ma cellule s'incrémente de 1 par rapport à la cellule du dessus, mais si j'insert encore une nouvelle ligne au dessus de celle que je viens d'insérer, la valeur ne s'incrément plus, car elle garde la valeur de la première en référence et non celle que je viens d'insérer.
Alors j'ai bien trouvé une formule sur Internet qui permet ça et la voici :

=INDIRECT("B"&LIGNE()-1)+1

Mais moi ce que je voudrais, c'est créer une fonction personnalisée en VBA qui me permette ceci :

Function MaFonction (Cellule)
' Je sélectionne la cellule dont je souhaite récupérer la valeur
' Et ensuite que je puisse insérer des colonne et des lignes et que cela s'incrémente toujours
'Comme il faut
End Fonction

Car le défaut de la formule du dessus, et que, comme vous pouvais le voir, elle reste bloqué sur la colonne " B ", si j'insère une nouvelle colonne entre " A " et " B ", celle-ci reste en " B ", donc au mauvais endroit.

Alors j'espère que ce petit problème intéressera certain d'entre vous, car je vous avoue que je sèche un peu sur ce coup là.

D'avance merci à vous pour vos réponses et suggestions.
:confused:
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : Fonction Incrémentation

Bonsoir à tous,
Sans fichier exemple, il sera effectivement difficile de t'aider davantage que :
je comprends que tu veux ajouter une formule et non une valeur dans ta cellule.
pour celà il faut utiliser Range.Formula
A+
 

sebamak

XLDnaute Nouveau
Re : Fonction Incrémentation

Voilà un fichier exemple :

Dans la cellule B4 la formule dont je vous parlais :

==INDIRECT("B"&LIGNE()-1)+1

Dans la cellule C4 la formule qui ne fonctionne pas :

=C3+1

Donc quand j’insert 2 lignes consécutives comme en ligne 8 et 9 on vois que les cellules en colonne « B » ce sont incrémentées de 1 à chaque fois, tandis que dans la colonne « C » la cellule « C9 » garde la référence de la cellule « C7 » malgré l’insertion d’une nouvelle ligne entre « ligne 7 » et « ligne 9 ».
Et pour l’instant, si je rajoute une nouvelle colonne entre « A » et « B », la cellule « B » garde la référence de la Colonne « B » alors qu’il faudrait qu’elle passe en « C »
 

Pièces jointes

  • INSERRER UNE LIGNE.xls
    24.5 KB · Affichages: 59

chris

XLDnaute Barbatruc
Re : Fonction Incrémentation

Bonjour

Je ne suis pas sure de comprendre ce que tu veux obtenir in fine, mais si tu mets "B" dans la fonction INDIRECT forcement, comme c'est du texte, cela n'évolue pas. Regardes plutôt la fonction DECALER.
Si tu le fais en VBA, tu retrouves l'équivalent avec OFFSET.
 

sebamak

XLDnaute Nouveau
Re : Fonction Incrémentation

Merci pour ta réponse Chris,
Je n’avais jamais utilisé la fonction DECALER, mais elle correspond tout à fait à mon besoin et fonctionne très bien.
Et merci à vous tous qui m’avez répondu.
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote