Problème d'itération en VBA

  • Initiateur de la discussion Initiateur de la discussion baptbapt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

baptbapt

XLDnaute Occasionnel
Bonjour tous le monde

Voila j'ai de gros problème avec mon VBA, et oui je le cache pas, je suis nul.

donc voila
je dois aditionner les valeurs de 2 cellules M4+K5 qui renvoi la valeur M5
et ainsi de suite M5+K6=M6 ...

M4 est toujours égale a 0 M4=0, départ

j'ai réaliser cette petite fonction en VBA, mais quand je copie dans excel
sa me renvoi toujours la valeur 2

Sub Nb()
For j = 1 To 90 Step 1
Nb = K + M + j
Next j
End Sub

je me plante peut etre sur l'équation que je doit mettre dans excel
=Nb(M4;K5)
pour me planter sous VBA, sa j'en suis sur.

Si quelqu'un pouvais m'aider, a trouver mon problème, (en VBA bien sur, pas moi)
 
Re : Problème d'itération en VBA

Bonjour baptbapt, le forum

Tu ne peux pas utiliser le recopie incrémentée dans Excel?
Ce serait plus facile : il suffit de lui dire en M5:

=M4+K5

Puis doubleclic sur la poignée de recopie ou recopie jusqu'à 90

Le VBA est-il absolument nécessaire 😕

A+
 
Re : Problème d'itération en VBA

Re,

voici un code, on peut même choisir le nombre de valeurs à calculer

PHP:
Sub add()
Dim i As Variant
Dim c As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)

'nettoyer avant de recommencer'
Range("M5:M" & Range("M65536").End(xlUp).Row).Select
Selection.ClearContents
Range("M5").Select

'calculs en boucle sur toutes les cellules de 1 à i'
For Each c In Range("M5:M" & i + 4)
    c.Value = c.Offset(0, -2).Value + c.Offset(-1, 0).Value
Next c

End Sub

En espérant que ça te conviendra, sinon, je reste à l'écoute.
A+
😎
 
Re : Problème d'itération en VBA

Salut tout le monde,

Au vue de ce que tu dis, je suppose donc que ta colonne K contient des valeurs.
Cette macro devrait faire ce que tu souhaites :
PHP:
Sub test()
Dim i%
For i = 5 To 30
    Cells(i, 13).Value = Cells(i - 1, 13).Value + Cells(i, 11).Value
Next i
End Sub

@+
 
Re : Problème d'itération en VBA

Re,

le plus simple est d'affecter la macro à un bouton ou à un raccourci clavier :

bouton:
- Affichage / barre d'outils / Formulaires
- dans cette barre d'outils cliquer 'bouton' et le placer sur la feuille Excel.
- une boite de dialogue s'ouvre automatiquement (sinon clic droit, affecter une macro)
- sélectionner la macro voulue ('add' dans notre exemple)
- valider

il n'y a plus qu'à cliquer sur le bouton pour lancer la procédure

Raccourci clavier :

- dans outils / macros / options / touche de raccourci
- affecter une touche tr + j par exemple
- valider

en faisant ctrl + j, on lance la procédure

A+
 
Re : Problème d'itération en VBA

Avec se nouvo programme, sa ma fait planter ma page.
le sytème ne reconnait plus aucune valeur
je met 90, il veut que je lui mette une valeur d'entier

l'autre fonctionne très bien déja, sa me va

par contre pour faire une soustraction?

=AB5-AE5

Sub add()
Dim i As Variant
Dim d As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)

'nettoyer avant de recommencer'
Range("K5:K" & Range("K65536").End(xlUp).Row).Select
Selection.ClearContents
Range("K5").Select

'calculs en boucle sur toutes les cellules de 1 à i'
For Each d In Range("K5:K" & i + 4)
d.Value = d.Offset(17, 0).Value - d.Offset(21, 0).Value
Next d

End Sub

mais la
j'ai plus que des 0
 
Dernière édition:
Re : Problème d'itération en VBA

re,

Je viens de jeter un oeil et chez moi la macro ne fonctionnait pas, je l'ai modifié de la manière suivante pour qu'elle fonctionne, toujours pour les addition
PHP:
Sub add_V2()
Dim i As Variant
Dim d As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
'nettoyer avant de recommencer'
Range("M5:M" & Range("K65536").End(xlUp).Row).Select
Selection.ClearContents
'calculs en boucle sur toutes les cellules de 1 à i'
For k = 5 To i
    Cells(k, 13).Value = Cells(k - 1, 13).Value + Cells(k, 11).Value
Next k
End Sub

Dis moi si elle focntionne comme tu veux. Pour les soustraction, tu veux le résultat dans quelle cellules?
Si tu reprend la macro que je te propose il te suffit de mofidier le signe + par un - et ca roule, du moins il me semble.

@+
 
Re : Problème d'itération en VBA

On va reprendre, quand tu dis que tu veux faire M4+K5 et mettre le résultat en M5, tu dis aussi que M4 vaut toujours 0, je suppose donc que tu as des valeurs dans ta colonne K. C'est exact ou pas?
Et les résultats des calculs sont ecrit dans la colonne M? je suis toujousr bon ou pas?

Sinon l'erreur de mon code se situe ou? parce que moi je le fais fonctionner sans problème.

@+
 
Re : Problème d'itération en VBA

Re, tout le monde

Bon, j'ai rectifié l'erreur en remplaçant la ligne de vérification vartype par isnumeric et exit sub en cas d'erreur (ça évite de tourner en boucle).

Porcinet82, d'après ce que j'ai compris, baptbapt veut une référence relative

Pour une soustraction de AB5 et EA5 en K5 (K5=EA5-AB5) ça donne:

PHP:
Sub soustraction()
Dim i As Variant
Dim c As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
If Not IsNumeric(i) Then
    MsgBox "La valeur indiquée n'est pas correcte, veuillez saisir un nombre entier entre 1 et 256"
    Exit Sub
End If

'nettoyer avant de recommencer'
Range("K5:K" & Range("K65536").End(xlUp).Row).Select
Selection.ClearContents
Range("K5").Select

'calculs en boucle sur toutes les cellules de 1 à i'
For Each c In Range("K5:K" & i + 4)
    c.Value = c.Offset(0, 120).Value - c.Offset(0, 17).Value
Next c

End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
987
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
819
S
Réponses
7
Affichages
2 K
syriak
S
D
Réponses
4
Affichages
1 K
Retour