Macro sous Excel 2010

David -  
 David -
Bonjour,

Voici la programmation en VBA avec Excel 2010. J'ai tapé ceci pour programmer mon macro:

Sub Test()

If Range("A3").Value = Range("C3").Value Then

If Range("B3").Value = "5" Then Range("D3").Value = "+20"
If Range("B3").Value = "4" Then Range("D3").Value = "+19"
If Range("B3").Value = "3" Then Range("D3").Value = "+18"
If Range("B3").Value = "2" Then Range("D3").Value = "+17"
If Range("B3").Value = "1" Then Range("D3").Value = "+16"
If Range("B3").Value = "0" Then Range("D3").Value = "+13"

ElseIf Range("A3").Value <> Range("C3").Value Then

If Range("B3").Value = "5" Then Range("D3").Value = "-20"
If Range("B3").Value = "4" Then Range("D3").Value = "-6"
If Range("B3").Value = "3" Then Range("D3").Value = "+0"
If Range("B3").Value = "2" Then Range("D3").Value = "+2"
If Range("B3").Value = "1" Then Range("D3").Value = "+3"
If Range("B3").Value = "0" Then Range("D3").Value = "+4"

Else: Range("D3").Value = "Pas de réponse"
End If
End Sub

Mon problème est que, pour l'instant, cela ne s'applique qu'à la 3e ligne. J'aurais voulu savoir comment faire pour l'appliquer à toutes les lignes.

Merci beaucoup! :)
A voir également:

5 réponses

Heremion Messages postés 564 Statut Membre 102
 
une variable en VBA se déclare comme suit :

dim TaVariable 


et comme je te l'ai mis plus haut, ton iMax doit prendre la valeur :

iMax = Range("A65536").End(xlUp).Row


i va donc être la première ligne de tes données, et imax, va se remplir avec la ligne ci-dessus avec le numéro de la dernière ligne où il trouve des données dans la colonne A

Il faut toujours penser à accepter un post qui vous sort du pétrin
1
Heremion Messages postés 564 Statut Membre 102
 
Bonjour David,

Pour cela, déclare un iMax et un i
puis

iMax = Range("A65536").End(xlUp).Row


Cela va te ramener la dernière ligne remplie.

Ensuite tu fais un :

for i = TaLigneDeDebutDeDonnees to imax  
    If Range("A"& i).Value = Range("C" & i).Value Then  etc... 
next i


Il faut toujours penser à accepter un post qui vous sort du pétrin
0
David
 
Comment est-ce que je déclare iMax et i? Oui, je débute en programmation... Comme ceci: iMax = 5 ?

i correspond à la première ligne et iMax à la dernière?

Merci bien Heremion! :)
0
David
 
for i = TaLigneDeDebutDeDonnees to imax   
    If Range("A"& i).Value = Range("C" & i).Value Then  etc...  
next i


Je colle donc ce que j'avais tapé pour la 3e ligne dans le
If Range
?

Merci bien! :)
0
Heremion Messages postés 564 Statut Membre 102
 
A chaque tour de boucle, ton i va prendre le numéro de la ligne donc tu remets simplement ton code :), tu as juste à remplacer tes "A3", "B3" et "C3" par des "A" & i, "B" & i, et "C" & i
0
David
 
Je n'ai qu'une chose à dire: c'est génial !. Et merci beaucoup de m'avoir aidé Heremion! ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour

à la bourre
code commenté en supprimant la série de if
<code>Option Explicit
Supprimé
Excusez moi d'avoir osé proposer une solution peut-^tre + élaborév mais rassure toi, David, je ne te dérangerai plus.
Michel
0