Boucle : la feuille souhaitée ne s'affiche pas

Bonjour,

J'ai fait une boucle pour afficher des données en fonction de dates (voir PJ). J'ai deux problèmes qui se posent :

- je demande à la fin de ma macro d'afficher une page : Sheets("Fiche réponses").Activate mais la fin de la macro affiche mon autre feuille (voir PJ)

- Je souhaiterai que quand il copie les infos de feuille Base SAP cela se limite au tableau (A à G) pas le reste. Comment doit-on faire ?

Merci d'avance.

copie macro

Bonjour,

Une proposition à tester ...

Cordialement.

Bonjour,

L'activation de la feuille "Fiche réponses" se trouve dans la boucle For ...Next et dans le test If ....

Si dans la dernière itération le test est faux, on ne lance pas l'instruction pour afficher la feuille.

Il faut donc "sortir" l'instruction Sheets("Fiche réponses").Activate pour la placer après le Next.

Par ailleurs, le fait d'activer les feuilles et passer par des Select n'apporte que perte de temps à afficher ces feuilles et rend la lecture du code malaisée.

        Sheets("Base SAP").Cells(i, 1).Select

        Selection.EntireRow.Copy

        Sheets("Fiche réponses").Activate
        ActiveSheet.Range("A65000").End(xlUp).Offset(1).Select
        ActiveSheet.Paste

Il vaut mieux utiliser ce genre d'écriture :

        Sheets("Base SAP").Cells(i, 1).EntireRow.Copy _
        Sheets("Fiche réponses").Range("A" & Sheets("Fiche réponses").Range("A" & Rows.Count).End(xlUp).Row + 1)

Dans la mesure où les range sont affectés à une feuille précise, on peut (doit) omettre les activate des feuilles.

On pourrait passer par des variables pour remplacer la lourdeur d'écriture du genre

Sheets("Fiche réponses").Range("A" & Sheets("Fiche réponses").......

par

Set Fic=Sheets("Fiche réponses")
Fic.Range("A" & Fic. ...

A+

Bonjour,

@ gyrus : ca ne fonctionne pas ta formule. Elle me supprime même mon entête dans la deuxième page.

@AllgoPlus : Merci pour tes explications : j'ai compris qu'il s'agissait de la position de mon Sheets("Fiche réponses").Activate dans la fonction For… next.

Mais dans ce cas je notifie quoi en plus et je demande l'activation de ma feuille où.

Je n'ai pas compris le détail de tes explications suivantes à part qu'elles permettent d'alléger l'écriture.

Merci d'avance pour tes réponses.

Re,

Considérant que le classeur que je t’ai envoyé est identique à celui que tu m’as envoyé et que ça se passe bien avec ce classeur, j’ai la faiblesse de penser qu’il n’y a pas de raison pour que ça se passe mal avec le tien.

De là à dire que si ça se passe mal, c’est que ton classeur n’est pas identique, il n’y a qu’un pas.

Cordialement.

Il faut donc "sortir" l'instruction Sheets("Fiche réponses").Activate pour la placer après le Next.

autrement dit

Sheets("Fiche réponses").Activate

doit être déplacé juste avant

MsgBox "Perfect!"

Bonjour Gyrus et Algoplus,

@Gyrus : Je me suis mal exprimée. Ta solution fonctionne mais elle m'efface mon entête sur ma page réponse. Merci pour ton retour

@Algoplus : Merci tout est OK maintenant.

Bonne journée.

Rechercher des sujets similaires à "boucle feuille souhaitee affiche pas"