Application d'une macro VBA
Akhös
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Eric m'avait aidé ici même il y a quelques jours, et m'avait proposé la formule suivante :
"""
Sélectionne toutes tes cellules recevant une addition et nomme la plage pl_add.
Et met ce code sur ton bouton :
Sub add()
Dim c As Range
For Each c In [pl_add]
c = c + c.Offset(, 1)
c.Offset(, 1) = ""
Next c
End Sub
"""
Ca marche du tonner, et j'ai même pu modifier la cellule de destination en modifiant le chiffre "1".
Par contre j'aimerai savoir comment modifier les coordonnées verticales ? En gros, j'aimerai garder la même formule mais pour pouvoir cibler n'importe quelle cellule de la feuille.
Ah, et puis-je faire plusieurs formules de ce type en modifiant le nom "add" ?
Merci d'avance !
Eric m'avait aidé ici même il y a quelques jours, et m'avait proposé la formule suivante :
"""
Sélectionne toutes tes cellules recevant une addition et nomme la plage pl_add.
Et met ce code sur ton bouton :
Sub add()
Dim c As Range
For Each c In [pl_add]
c = c + c.Offset(, 1)
c.Offset(, 1) = ""
Next c
End Sub
"""
Ca marche du tonner, et j'ai même pu modifier la cellule de destination en modifiant le chiffre "1".
Par contre j'aimerai savoir comment modifier les coordonnées verticales ? En gros, j'aimerai garder la même formule mais pour pouvoir cibler n'importe quelle cellule de la feuille.
Ah, et puis-je faire plusieurs formules de ce type en modifiant le nom "add" ?
Merci d'avance !
A voir également:
- Application d'une macro VBA
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Desinstaller une application sur windows - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Windows application démarrage - Guide
1 réponse
Bonjour,
Si tu fais F1 sur Offset tu as l'aide excel qui est très bien faite :
Offset, propriété
Cette propriété renvoie un objet Range qui représente une plage décalée de la plage spécifiée. En lecture seule.
expression.Offset(RowOffset, ColumnOffset)
expression Obligatoire. Expression qui renvoie un objet Range.
RowOffset Argument de type Variant facultatif. Nombre de lignes (valeur positive, négative ou égale à 0 (zéro)) de décalage à appliquer à la plage. Les valeurs positives correspondent à un décalage vers le bas et les valeurs négatives à un décalage vers le haut. La valeur par défaut est 0.
ColumnOffset Argument de type Variant facultatif. Nombre de colonnes (valeur positive, négative ou égale à 0 (zéro)) de décalage à appliquer à la plage. Les valeurs positives correspondent à un décalage vers la droite et les valeurs négatives à un décalage vers la gauche. La valeur par défaut est 0.
Par contre je l'avais mal nommée, add est un mot du basic et il vaut mieux éviter. Appelle-là addX() par exemple.
Tu peux avoir (presque) autant de procédures que tu veux tant qu'elles portent des noms différents.
Pour raccourcir le code tu peux aussi appeler une autre procédure, en lui passant des paramètres éventuellement.
Exemple :
Dans la mesure où c'est la même plage pl_add qui est concernée.
Sinon il faut soit créer une nouvelle procédure avec le nouveau nom de plage, soit ajouter un paramètre Plage (as Range) à passer à la procédure.
eric
Si tu fais F1 sur Offset tu as l'aide excel qui est très bien faite :
Offset, propriété
Cette propriété renvoie un objet Range qui représente une plage décalée de la plage spécifiée. En lecture seule.
expression.Offset(RowOffset, ColumnOffset)
expression Obligatoire. Expression qui renvoie un objet Range.
RowOffset Argument de type Variant facultatif. Nombre de lignes (valeur positive, négative ou égale à 0 (zéro)) de décalage à appliquer à la plage. Les valeurs positives correspondent à un décalage vers le bas et les valeurs négatives à un décalage vers le haut. La valeur par défaut est 0.
ColumnOffset Argument de type Variant facultatif. Nombre de colonnes (valeur positive, négative ou égale à 0 (zéro)) de décalage à appliquer à la plage. Les valeurs positives correspondent à un décalage vers la droite et les valeurs négatives à un décalage vers la gauche. La valeur par défaut est 0.
Par contre je l'avais mal nommée, add est un mot du basic et il vaut mieux éviter. Appelle-là addX() par exemple.
Tu peux avoir (presque) autant de procédures que tu veux tant qu'elles portent des noms différents.
Pour raccourcir le code tu peux aussi appeler une autre procédure, en lui passant des paramètres éventuellement.
Exemple :
Sub add01()
addOffset 0, 1
End Sub
Sub addOffset13()
addOffset 1, 3
End Sub
Sub addOffset(lig As Long, col As Long)
Dim c As Range
For Each c In [pl_add]
c = c + c.Offset(lig, col)
c.Offset(lig, col) = ""
Next c
End Sub
Dans la mesure où c'est la même plage pl_add qui est concernée.
Sinon il faut soit créer une nouvelle procédure avec le nouveau nom de plage, soit ajouter un paramètre Plage (as Range) à passer à la procédure.
eric