J'ai fait un programme en excel 2000 VBA sous XP et il y a une macro que je
ne réussi pas à faire fonctionner.
J'ai un classeur avec entre autre une feuille Récap (correspondant à l'année
actuelle ) et une autre feuille Récap.n_1
(correspodant à l'année 2006)
Dans la feuille Récap la colonne A = noms, la colonne B = sommes. Idem pour
Récap.n_1 avec comme différence que
les colonnes sont remplies jusqu'à la ligne 55.
But lorsque des noms identiques sont trouvés le montant de Récap.n_1 est
reporté en Récap colonne R
J'ai écrit ceci:
Sub MontantN_1 ()
For j = 8 To 55
NomFeuille = ActiveSheet.Name
Select Case NomFeuille
Case "Jan"
MontN_1 = Worksheets("Récap.n_1").Cells(j, "a")
MontAnnée = Worksheets("Récap").Cells(j, "a")
If MontN_1 = MontAnnée Then
Worksheets("Récap").Cells(j, "r") =
Worksheets("Récap.n_1").Cells(j, "b")
Else: GoTo LigneN
End If
End Select
LigneN:
Next j
End Sub
Cette macro ne fonctionne pas avec le signe =, par contre avec le signe <>
j'ai en Récap colonne R toutes les valeurs
de Récap.n_1 mais qui bien sur ne correspondent pas au nom de la feuille
Récap.
L'un de vous peut-il m'aider?
D'avance merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jm
"André" wrote in message news:entb49$1rl$
Bonjour,
J'ai fait un programme en excel 2000 VBA sous XP et il y a une macro que je ne réussi pas à faire fonctionner. J'ai un classeur avec entre autre une feuille Récap (correspondant à l'année actuelle ) et une autre feuille Récap.n_1 (correspodant à l'année 2006)
Dans la feuille Récap la colonne A = noms, la colonne B = sommes. Idem pour Récap.n_1 avec comme différence que les colonnes sont remplies jusqu'à la ligne 55. But lorsque des noms identiques sont trouvés le montant de Récap.n_1 est reporté en Récap colonne R
J'ai écrit ceci: Sub MontantN_1 () For j = 8 To 55 NomFeuille = ActiveSheet.Name
Select Case NomFeuille
Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") > Worksheets("Récap.n_1").Cells(j, "b") Else: GoTo LigneN End If End Select
LigneN: Next j End Sub Cette macro ne fonctionne pas avec le signe =, par contre avec le signe <> j'ai en Récap colonne R toutes les valeurs de Récap.n_1 mais qui bien sur ne correspondent pas au nom de la feuille Récap. L'un de vous peut-il m'aider? D'avance merci.
Hello,
Essaie d'exécuter en mode pas à pas et regarde ce que contiennent tes valeurs MontN_1 et MontAnnée à l'endroit du test.
Si tu ne sais pas le faire, ajoute ceci à ta macro:
Il ne te reste plus qu'à aller examiner le fichier c:debug.txt pour voir ce que contiennent tes variables. Tu sauras alors pourquoi le "=" semble ne pas fonctionner.
Si après tout ça tout te semble ok (ce dont je doute), mais si comme tu le dis ça fonctionne avec <>,
tu peux écrire:
If Not( MontN_1 <> MontAnnée) Then
Ce qui devrait aussi marcher et faire ce que tu veux :o)
Mais je suis sur que tu verras des choses en débuggant.
-- Jean-marc
"André" <aecr@tiscali.fr> wrote in message
news:entb49$1rl$1@news.tiscali.fr...
Bonjour,
J'ai fait un programme en excel 2000 VBA sous XP et il y a une macro que
je
ne réussi pas à faire fonctionner.
J'ai un classeur avec entre autre une feuille Récap (correspondant à
l'année
actuelle ) et une autre feuille Récap.n_1
(correspodant à l'année 2006)
Dans la feuille Récap la colonne A = noms, la colonne B = sommes. Idem
pour
Récap.n_1 avec comme différence que
les colonnes sont remplies jusqu'à la ligne 55.
But lorsque des noms identiques sont trouvés le montant de Récap.n_1 est
reporté en Récap colonne R
J'ai écrit ceci:
Sub MontantN_1 ()
For j = 8 To 55
NomFeuille = ActiveSheet.Name
Select Case NomFeuille
Case "Jan"
MontN_1 = Worksheets("Récap.n_1").Cells(j, "a")
MontAnnée = Worksheets("Récap").Cells(j, "a")
If MontN_1 = MontAnnée Then
Worksheets("Récap").Cells(j, "r") > Worksheets("Récap.n_1").Cells(j, "b")
Else: GoTo LigneN
End If
End Select
LigneN:
Next j
End Sub
Cette macro ne fonctionne pas avec le signe =, par contre avec le signe <>
j'ai en Récap colonne R toutes les valeurs
de Récap.n_1 mais qui bien sur ne correspondent pas au nom de la feuille
Récap.
L'un de vous peut-il m'aider?
D'avance merci.
Hello,
Essaie d'exécuter en mode pas à pas et regarde ce
que contiennent tes valeurs MontN_1 et MontAnnée
à l'endroit du test.
Si tu ne sais pas le faire, ajoute ceci à ta macro:
Il ne te reste plus qu'à aller examiner le fichier c:debug.txt
pour voir ce que contiennent tes variables.
Tu sauras alors pourquoi le "=" semble ne pas fonctionner.
Si après tout ça tout te semble ok (ce dont je doute),
mais si comme tu le dis ça fonctionne avec <>,
tu peux écrire:
If Not( MontN_1 <> MontAnnée) Then
Ce qui devrait aussi marcher et faire ce que tu veux :o)
Mais je suis sur que tu verras des choses en débuggant.
J'ai fait un programme en excel 2000 VBA sous XP et il y a une macro que je ne réussi pas à faire fonctionner. J'ai un classeur avec entre autre une feuille Récap (correspondant à l'année actuelle ) et une autre feuille Récap.n_1 (correspodant à l'année 2006)
Dans la feuille Récap la colonne A = noms, la colonne B = sommes. Idem pour Récap.n_1 avec comme différence que les colonnes sont remplies jusqu'à la ligne 55. But lorsque des noms identiques sont trouvés le montant de Récap.n_1 est reporté en Récap colonne R
J'ai écrit ceci: Sub MontantN_1 () For j = 8 To 55 NomFeuille = ActiveSheet.Name
Select Case NomFeuille
Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") > Worksheets("Récap.n_1").Cells(j, "b") Else: GoTo LigneN End If End Select
LigneN: Next j End Sub Cette macro ne fonctionne pas avec le signe =, par contre avec le signe <> j'ai en Récap colonne R toutes les valeurs de Récap.n_1 mais qui bien sur ne correspondent pas au nom de la feuille Récap. L'un de vous peut-il m'aider? D'avance merci.
Hello,
Essaie d'exécuter en mode pas à pas et regarde ce que contiennent tes valeurs MontN_1 et MontAnnée à l'endroit du test.
Si tu ne sais pas le faire, ajoute ceci à ta macro:
Il ne te reste plus qu'à aller examiner le fichier c:debug.txt pour voir ce que contiennent tes variables. Tu sauras alors pourquoi le "=" semble ne pas fonctionner.
Si après tout ça tout te semble ok (ce dont je doute), mais si comme tu le dis ça fonctionne avec <>,
tu peux écrire:
If Not( MontN_1 <> MontAnnée) Then
Ce qui devrait aussi marcher et faire ce que tu veux :o)
Mais je suis sur que tu verras des choses en débuggant.
-- Jean-marc
JLuc
Simplifie comme ceci, tu n'a pas besoin de branchement "en dur" :
Sub MontantN_1 () For j = 8 To 55 NomFeuille = ActiveSheet.Name Select Case NomFeuille Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") = _ Worksheets("Récap.n_1").Cells(j, "b") End If End Select Next j End Sub
Ensuite, si ca ne te mets pas les valeurs, c'est peut être que la cellule A1 de la feuille Recap n'est pas égale à la cellule A1 de Recap.N_1... Sheets("Récap").Range("A1") <> Sheets("Récap.n_1").Range("A1") Sheets("Récap").Range("A2") <> Sheets("Récap.n_1").Range("A2") Sheets("Récap").Range("A3") <> Sheets("Récap.n_1").Range("A3") Sheets("Récap").Range("A4") <> Sheets("Récap.n_1").Range("A4") Sheets("Récap").Range("A5") <> Sheets("Récap.n_1").Range("A5") ... Tu veux peut être tester la première valeur de Récap.n_1 sur toutes les valeurs de Récap, mais là, il faut faire deux boucles intégrées l'une dans l'autre ;-)
-- JLuc
Simplifie comme ceci, tu n'a pas besoin de branchement "en dur" :
Sub MontantN_1 ()
For j = 8 To 55
NomFeuille = ActiveSheet.Name
Select Case NomFeuille
Case "Jan"
MontN_1 = Worksheets("Récap.n_1").Cells(j, "a")
MontAnnée = Worksheets("Récap").Cells(j, "a")
If MontN_1 = MontAnnée Then
Worksheets("Récap").Cells(j, "r") = _
Worksheets("Récap.n_1").Cells(j, "b")
End If
End Select
Next j
End Sub
Ensuite, si ca ne te mets pas les valeurs, c'est peut être que la
cellule A1 de la feuille Recap n'est pas égale à la cellule A1 de
Recap.N_1...
Sheets("Récap").Range("A1") <> Sheets("Récap.n_1").Range("A1")
Sheets("Récap").Range("A2") <> Sheets("Récap.n_1").Range("A2")
Sheets("Récap").Range("A3") <> Sheets("Récap.n_1").Range("A3")
Sheets("Récap").Range("A4") <> Sheets("Récap.n_1").Range("A4")
Sheets("Récap").Range("A5") <> Sheets("Récap.n_1").Range("A5")
...
Tu veux peut être tester la première valeur de Récap.n_1 sur toutes les
valeurs de Récap, mais là, il faut faire deux boucles intégrées l'une
dans l'autre ;-)
Simplifie comme ceci, tu n'a pas besoin de branchement "en dur" :
Sub MontantN_1 () For j = 8 To 55 NomFeuille = ActiveSheet.Name Select Case NomFeuille Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") = _ Worksheets("Récap.n_1").Cells(j, "b") End If End Select Next j End Sub
Ensuite, si ca ne te mets pas les valeurs, c'est peut être que la cellule A1 de la feuille Recap n'est pas égale à la cellule A1 de Recap.N_1... Sheets("Récap").Range("A1") <> Sheets("Récap.n_1").Range("A1") Sheets("Récap").Range("A2") <> Sheets("Récap.n_1").Range("A2") Sheets("Récap").Range("A3") <> Sheets("Récap.n_1").Range("A3") Sheets("Récap").Range("A4") <> Sheets("Récap.n_1").Range("A4") Sheets("Récap").Range("A5") <> Sheets("Récap.n_1").Range("A5") ... Tu veux peut être tester la première valeur de Récap.n_1 sur toutes les valeurs de Récap, mais là, il faut faire deux boucles intégrées l'une dans l'autre ;-)
-- JLuc
JLuc
Et même comme ceci :
Sub MontantN_1 () For j = 8 To 55 Select Case ActiveSheet.Name Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") = _ Worksheets("Récap.n_1").Cells(j, "b") End If End Select Next j End Sub
-- JLuc
Et même comme ceci :
Sub MontantN_1 ()
For j = 8 To 55
Select Case ActiveSheet.Name
Case "Jan"
MontN_1 = Worksheets("Récap.n_1").Cells(j, "a")
MontAnnée = Worksheets("Récap").Cells(j, "a")
If MontN_1 = MontAnnée Then
Worksheets("Récap").Cells(j, "r") = _
Worksheets("Récap.n_1").Cells(j, "b")
End If
End Select
Next j
End Sub
Sub MontantN_1 () For j = 8 To 55 Select Case ActiveSheet.Name Case "Jan" MontN_1 = Worksheets("Récap.n_1").Cells(j, "a") MontAnnée = Worksheets("Récap").Cells(j, "a") If MontN_1 = MontAnnée Then Worksheets("Récap").Cells(j, "r") = _ Worksheets("Récap.n_1").Cells(j, "b") End If End Select Next j End Sub