Problème de code ou bug

Bonjour,

J'ai un léger bug je crois parce que je suis obligé de cliquer deux fois sur le boutons pour que sa marche, normalement je clique une fois et tout est ok.

Pouvez vous m'aidez s'il vous plait ? C'est la macro "Mg"

J'ai une autre question, j'ai voulu rendre générique la macro CellFixe malheureusement j'ai pas réussi, donc j'ai rentrer en dur, mais la aussi j'ai un blocage sur les cellules vides lorsque vient à calculer la moyenne "Average" est-il possible de le rendre générique? Ou juste évitez qu'il calcul dans c'est une cellule vide?

Merci pour votre aide

Bonsoir,

Je ne vois pas bien ce que tu veux faire, mais ta procédure m'a l'air confuse !

Tu opères avec 2 boucles imbriquées, la boucle externe s'initialise avec j = 1 To 2 (résultat de ton expression).

La boucle interne prend en compte la valeur de S1 quand j=1 et S2 quand j=2

Au premier tour, elle s'initialise avec i = 1 à 4. Elle va donc copier 4 fois la valeur de U1, en H2, H3, H4 et H5

Au second tour, i=1 à 7. Elle copie alors 7 fois la valeur de U2, de H6 à H12.

C'est ce qui ressort de ton code !

Le mieux serait que tu indiques clairement ton objectif ! On y verrait plus clair et on pourrait produire un code qualifié en ce qui concerne les objets Range, n'utilisant pas la copie, et sans doute mieux adapté à l'objectif...

Pour le reste il y aura beaucoup plus à voir, en commençant par les choix relatifs aux variables...

On pourra aussi faire disparaître ces énumérations fastidieuses rien qu'à les regarder.

Il faut noter aussi que la fonction MOYENNE ignore les cellules vides, je ne comprends donc pas ton souci à cet égard.

Cordialement.

Bonjour,

Merci pour ta réponse,

En fait il marche bien mais seulement au deuxième clique, je veux qu'il fasse S x U pour chaque ligne et que sa apparaisse sous H, il le faisait très bien mais là pour il bug il me le fait au deuxième c'est vraiment bizarre.

Pour le second, c'est pas grave c'est pas important j'ai plus le temps de refaire ce code.

Re,

Je t'ai décrit ce que faisait ton code, rien de bizarre, il fait exactement ce que tu as codé, et je ne vois aucune multiplication dans ton code...

Au 2e clic, tu relances la même procédure dans une situation différente, elle va donc opérer en fonction de la situation trouvée, et ce sera encore une nouvelle situation si tu la lances une 3e fois !

Pour le reste c'est comme bon te semble mais l'exercice aurait été didactique pour apprendre à mieux utiliser VBA.

Cordialement.

Je comprend pas ta description, je demande de l'aide mais tu m'embrouille encore plus que je ne l'étais

Sub Mg()

Dim j As Integer, i As Integer

For j = 1 To Range("H" & Rows.Count).End(xlUp).Row + 1 "Pour j allant de 1 à H et ces lignes comptés jusqu'a la fin des lignes non vide"

For i = 1 To Cells(j, 19).Value "Pour i allant de 1 à S qui sont les coefficients"

Cells(j, 21).Copy Destination:=Range("H" & Range("H" & Rows.Count).End(xlUp).Row + 1) "Copier les lignes de la colonne 21 à destination de la colonne H et ses lignes"

Next i

Next j

End Sub

Où est-ce que j'ai fais une erreur sachant qu'il marchait bien ?

Un peu dur à la détente ! Au départ il n'y a rien dans H, sauf H1... End(xlUp) va renvoyer 1, tu ajoutes 1 qui font 2 et voilà ta boucle j qui va aller de 1 à 2 ! pas plus...

La boucle i va de 1 à la valeur de S1 (Cells(j, 19) c'est S1 lorsque j vaut 1). S1=4 donc i=1 à 4

La copie de U1 (Cells(j, 21) va se faire sur les 4 premières cellules vides de H, soit H2 à H5.

Tu peux continuer sur le second tour : j=2...

Il est important de savoir ce que fait exactement ton code ! Sinon tu codes au hasard...

Ahh merci je viens de comprendre, j'avais une erreur au lieu de S j'ai mis H

Rechercher des sujets similaires à "probleme code bug"