Probleme boucle sur plusieurs feuille

GE -  
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un fichier de plusieurs pages et je veux faire tourner une macro qui va chercher des valeurs dans d'autres fichiers pour chaque page (sauf quelques une qui ont une cellule vide en B1). J'ai commencé par la struture de la boucle et elle ne fonctionne pas.

Sub tentative_boucle()

Dim feuille As Worksheet
For Each feuille In Worksheets
feuille.Activate
Range("B1").Select
If Selection.Value = "" Then
Else
Range("A1").Select
ActiveCell.FormulaR1C1 = "ok"
Next feuille

End Sub

La macro ne bug pas mais pour autant pour les pages contenant une infos en B1 , elle n'inscrit aps OK en A1 .

N'etant pas expert en vba, je m'en remets à l'aide du forum,

Merci d'avance.

2 réponses

  1. GE
     
    C'est bon j'ai trouvé la solution.
    Mon bouton n'était pas relié à la bonne macro.
    Pour ceux que ça interesse la macro marche telle qu'elle est.
    0
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Je me demande comment ta macro peut fonctionner correctement, vu que tu ne termines pas ton If par un End If !

      Tu peux également améliorer un peu ta macro : les Select ralentissent l'exécution de la macro.

      Du coup tu pourrais avoir ceci comme code :
      Sub tentative_boucle()
      
      Dim feuille As Worksheet
      For Each feuille In Worksheets
      feuille.Activate
      If Not (IsEmpty(Cells(1, 2))) Then
      Cells(1, 1).FormulaR1C1 = "ok"
      End If
      Next feuille
      
      End Sub


      Cordialement.
      0
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    vous pouvez rajouter un "End If" avant le Next.

    De plus, au lieu de faire le "si c'est vide on fait rien sinon on fait quelque chose", faites "si c'est pas vide on fait quelque chose".

    Du coup votre code devient :
    Sub tentative_boucle() 
    
    Dim feuille As Worksheet 
    For Each feuille In Worksheets 
    feuille.Activate 
    Range("B1").Select 
    If Selection.Value <> "" Then 
    Range("A1").Select 
    ActiveCell.FormulaR1C1 = "ok" 
    End If 
    Next feuille 
    
    End Sub 


    Cordialement.
    Ce mec la n'était pas une lumière, car il était niais.
    0