Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avec les macro

maneos

XLDnaute Nouveau
Bonjour,
J'ai décidé de me mettre à faire des macro pour simplifier un peu l'utilisation de Excel cependant ma macro n'a pas d'impact...je ne comprend pas....

Je cherche à appliquer une formule à la case H3 si seulement si je trouve dans les cellules de la colonne C le nom Dupond par exemple.
Par exemple si dans C7 il y a bien écrit le mon Dupond je veux me reporter à la case H7 et faire en H3 : H3 = sm - 7.5*valeur de H7...
J'ai donc écrit le code suivant :
For i = 7 To 20 'je travaille seulement sur plage de lignes
If (Cells(i, 3) = "Dupond") Then 'Si Dupond fait partie du projet
Worksheets("Sheet1").Range("H3") = "7.5 - 7.5 * Cells(i, 8)" 'On enlève le pourcentage qu'il doit effectuer pour le projet à son compte d'heure initial journalier
End If
Next i


Le problème c'est qu'il me dit qu'un indice n'est pas défini ou alors pas d'effet sur ma feuille de calcul...je bloque, est ce que quelqu'un aurait une idée ?*

Merci !
 

wamme

XLDnaute Occasionnel
Re : Problème avec les macro

Salut,
comme çà, çà devrait fonctionner :

For i = 7 To 20
If (Cells(i, 3) = "Dupond") Then
Range("H3") = 7.5 - 7.5 * Cells(i, 8)
End If
Next i
 

maneos

XLDnaute Nouveau
Re : Problème avec les macro

Ca marche ! Enfin,... disons que excel effectu un calcul et met le résultat dans la bonne cellule.
Cependant quelque soit la valeur de ma cellule (i,8) le résultat est toujours 3.75 .... ce n'est pas normal. Quel peut bien être le problème d'aprés vous ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Problème avec les macro

Bonjour le fil, bonjour le forum,

rajoute :
Code:
For i = 7 To 20
    If (Cells(i, 3) = "Dupond") Then
        Range("H3") = 7.5 - 7.5 * Cells(i, 8)
        [COLOR=red]Exit For[/COLOR]
    End If
Next i
 
Dernière édition:

maneos

XLDnaute Nouveau
Re : Problème avec les macro

ok en mettant Exit For, j'obtient le bon résultat.
Cependant il se peut que j'ai plusieurs lignes (i,3) avec "dupond", j'aimerai que le calcul de la somme se fasse au fur et à mesure qu'il rencontre "dupond" dans la colonne C.
Au départ j'ai un nombre initial d'heures dans H3 qui doit diminuer si la personne fait plusieurs choses dans la journée.
Je ne veux donc pas sortir de la boucle For dès qu'il a rencontré une fois "dupond"....
 

maneos

XLDnaute Nouveau
Re : Problème avec les macro

J'ai une idée pour contourner le problème mais elle doit être incomplete car elle ne marche pas....

While h <= 5
For i = j To 20
If (Cells(i, 3) = nom1) Then 'Si Dupond fait partie du projet
Range("H3") = sm1 - 7.5 * Cells(i, 8) 'On enlève le pourcentage qu'il doit effectuer pour le projet à son compte d'heure initial journalier
j = i + 1
Exit For
End If
Next i
h = h + 1
Wend
 

maneos

XLDnaute Nouveau
Re : Problème avec les macro

C'est bon j'ai résolu le problème en créant une variable et en lui demandant de faire les calculs dans une autre colonne au fur et à mesure :
For j = 8 To 92 Step 4
resultlv = 7.5 'nombre d'heure a faire le lundi et vendredi
For i = 9 To 20
If (Cells(i, 3) = nom1) Then 'Si Dupond fait partie du projet
Cells(i, 1) = resultlv - 7.5 * Cells(i, j) 'On enlève le pourcentage qu'il doit effectuer pour le projet à son compte d'heure initial journalier
a = Cells(i, 1)
resultlv = a
End If
Next i

For i = 9 To 20
If (Cells(i, 3) = nom1) Then 'Si Dupond fait partie du projet
Cells(3, j) = a 'on met dans la case du jour le total du temps travaillé ce jour la
End If
Next i

Next j


Merci beaucoup du coup de main !
 

Discussions similaires

Réponses
10
Affichages
587
Réponses
7
Affichages
486
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…