Faire une boucle de feuil1 vers feuil2 vba
dianbobo
Messages postés
151
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
bonjour tout le monde
je suis sur un code que je croix avoir presque terminé mais je bute sur un point
voici mon code:
dans ce code je cherche a parcourir "Feuil1" avec la condition que j'ai imposé et mettre le resultat dans feuil2
ma boucle parcours la feuille ("feuil1") daja a ce nivo j'aimerai savoir ci c'est correct mon ecriture ?
ensuite je voudrais faire la somme de toutes les differences Abs(spot_1 - spot_2) ...
est ce correct la aussi
enfin mon soucis majeur est que ma cellule H6 DOIT CONTENIR : H6=somme/(nombre de fois qu'on a rencontré le caractere AAA dans feuil1) en d'autres termes c'est le nombre de fois qu'on a fait la difference entre spot_1 et spot_2
sof que j'ignore comment le definir dans mon code
merci de votre aide
bonjour tout le monde
je suis sur un code que je croix avoir presque terminé mais je bute sur un point
voici mon code:
Sub spreadDeCredit() Dim k As Long Dim spot_1 As Double Dim spot_2 As Double Dim somme As Single Dim diff As Double k = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row For i = 0 To k If Worksheets("Feuil1").Cells(i, 16).Value Like "*AAA*" Then spot_1 = Worksheets("Feuil1").Cells(i, 10).Value spot_2 = Worksheets("Feuil1").Cells(i, 11).Value diff = Abs(spot_1 - spot_2) somme = 0 somme = somme + diff End If Cells(6, 8).Value = somme End Sub
dans ce code je cherche a parcourir "Feuil1" avec la condition que j'ai imposé et mettre le resultat dans feuil2
ma boucle parcours la feuille ("feuil1") daja a ce nivo j'aimerai savoir ci c'est correct mon ecriture ?
ensuite je voudrais faire la somme de toutes les differences Abs(spot_1 - spot_2) ...
est ce correct la aussi
somme = somme + diff?
enfin mon soucis majeur est que ma cellule H6 DOIT CONTENIR : H6=somme/(nombre de fois qu'on a rencontré le caractere AAA dans feuil1) en d'autres termes c'est le nombre de fois qu'on a fait la difference entre spot_1 et spot_2
sof que j'ignore comment le definir dans mon code
merci de votre aide
A voir également:
- Faire une boucle de feuil1 vers feuil2 vba
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Clavier qwerty vers azerty - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Vers quelle adresse web renvoie ce lien - Guide
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
3 réponses
Bonjour,
Utilise une variable supplémentaire que tu incrémentes dans chaque passage de la boucle.
Par exemple: nbdiff = nbdiff+1
Par contre remplace For i = 0 To k par For i = 1 To k, il n'y a pas de ligne 0
eric
Utilise une variable supplémentaire que tu incrémentes dans chaque passage de la boucle.
Par exemple: nbdiff = nbdiff+1
Par contre remplace For i = 0 To k par For i = 1 To k, il n'y a pas de ligne 0
eric
Bonjour eriiic
voila je ne sais pas pas si j'ai bien suivi ton conseil j'ai ajouté une variable nommé Occurence voici le code:
mais j'ai une erreur d'execution :"depassement de capacité"
a la ligne ci dessous :
est ce correct mon code par rapport a tes indications ?
et comment corriger l'erreur ?
merci pour tout.
voila je ne sais pas pas si j'ai bien suivi ton conseil j'ai ajouté une variable nommé Occurence voici le code:
Sub spreaDeCredit() Dim k As Long Dim spot_1 As Double Dim spot_2 As Double Dim somme As Single Dim diff As Double Dim Occurence As Integer k = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row For i = 0 To k - 6 If Worksheets("Feuil1").Cells(i + 6, 16).Value Like "*AAA*" Then Occurence = Occurence + 1 spot_1 = Worksheets("Feuil1").Cells(i + 6, 10).Value spot_2 = Worksheets("Feuil1").Cells(i + 6, 11).Value diff = Abs(spot_1 - spot_2) somme = somme + diff End If Cells(6, 8).Value = somme / Occurence Next End Sub
mais j'ai une erreur d'execution :"depassement de capacité"
a la ligne ci dessous :
Cells(6, 8).Value = somme / Occurence
est ce correct mon code par rapport a tes indications ?
et comment corriger l'erreur ?
merci pour tout.
Dim somme As Single est sans doute un peu juste, déclare-le en double si tu veux être tranquille.
Pareil pour occurence, autant le mettre en long même si tu penses qu'il suffit, et ce d'autant plus que le traitement des long est plus rapide que celui des integer.
Ton code me parait très correct.
Tu peux aller voir cette page sur les variables en vba. A la fin tu as les limites selon les types
Pareil pour occurence, autant le mettre en long même si tu penses qu'il suffit, et ce d'autant plus que le traitement des long est plus rapide que celui des integer.
Ton code me parait très correct.
Tu peux aller voir cette page sur les variables en vba. A la fin tu as les limites selon les types