Afficher le résultat d'une macro dans une cellule et plus
Bonjour,
Pour régler certains paramètres de ma macro, j'ai besoin d'afficher les résultats de différentes formules VBA dans plusieurs cellules de mon classeur.
J'ai constitué plusieurs fichiers exemples (Essai1, Essai2, Essai3) pour ma démonstration :
Code-Essai1 :
Private Sub Worksheet_Change(ByVal target As Range)
Range("G1").Value = Len(Range("A1"))
End SubCe code fonctionne correctement dès la première saisie.
Code-Essai2 :
Private Sub Worksheet_Change(ByVal target As Range)
Range("G1").Value = Len(Range("A1"))
Range("G2").Value = Len(Range("A2"))
End SubCe code affiche les résultats dès la première saisie, mais lors de la deuxième, Excel plante, ou boucle sans fin.
Code-Essai3 :
Private Sub Worksheet_Change(ByVal target As Range)
Dim i As Integer
For i = 1 To 5
Range("G" & i).Value = Len(Range("A" & i))
Next i
End SubCe code affiche tous les résultats dès la première saisie, mais lors de la deuxième, Excel plante, ou boucle sans fin.
Quelqu'un pourrait-il m'expliquer pourquoi ?
Peut être est-il impossible d'afficher les résultats d'une macro dans plusieurs cellules sinon Excel boucle sans fin ?
Je vous remercie pour vos réponses.
PB
Bonjour Pat38,
C'est normal que tu tournes en boucle tu as mis ta macro dans le Worksheet_Change, je m'explique
Private Sub Worksheet_Change(ByVal target As Range)
Dim i As Integer
For i = 1 To 5
Range("G" & i).Value = Len(Range("A" & i)) 'ici tu modifies une des cellules de la colonne G du coup ton worksheet est modifié et ta procédure est donc relancée à l'infini
Next i
End SubMet ta macro dans un module est pas dans le worksheet change celà devrait fonctionner.
Cordialement.
Bonjour,
Merci pour ton aide.
Tu m'a mis la "puce à l'oreille" mais je n'y suis pas arrivé en mettant ma macro dans un autre module.
Cependant j'y suis arrivé en modifiant la macro de la façon suivante :
Private Sub Worksheet_Change(ByVal target As Range)
Dim i As Integer
For i = 1 To 5
Sheets("Feuil2").Range("A" & i).Value = Len(Range("A" & i))
Next i
End SubPour que "je ne reste pas idiot" pourrais-tu m'indiquer quelle est la syntaxe pour interférer, à partir d'un module, sur une feuille donnée ou à partir d'une Feuil? (Code), ou à partir du Workbook (Code) en "Général" ou en "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" ou en "Private Sub Workbook_Open()" et comment faut-il déclarer la macro : (Public Sub, Private Sub, Sub...)
Merci encore pour ta réponse.
Cordialement.
Pat,