Probleme avec ActiveSheet.Next sous VBA

Résolu
Bonjour,

Je debute en programmation VBA et j'ai besoin d'un peu d'aide...

En gros, j'ai fait un code qui denombre sur une feuille excel (fichier "data.xls") diverses successions de chiffres sur une meme colonne, et ensuite reporte cette valeur sur un autre fichier excel "data-extracted.xls".
Le probleme c'est que ensuite, le code doit etre capable de revenir au premier fichier excel (data.xls), et passer à la feuille suivante pour continuer l'analyse (jusqu'à ce qu'il ait analysé toutes les feuilles du fichier "data.xls").
J'utilise la fonction "ActiveSheet.Next.Select" pour passer à la feuille suivante, sauf que ça marche pas, il ne lit les data que sur la premiere feuille de depart.

Pouvez vous m'aider, s'il vous plait?

Merci d'avance

Le code VBA est le suivant:

Private Sub CommandButton1_Click()

Dim rCount As Integer
Dim compta As Single
Dim comptc As Single

rCount = 4

Do

compta = 0
comptc = 0

For i = 16 To 300
If Cells(i, 3).Value = 1 And (Cells(i + 1, 3).Value = 4 Or Cells(i + 1, 3).Value = 5 Or Cells(i + 1, 3).Value = 6) Then
compta = compta + 1
End If
Next i

For i = 16 To 300
If Cells(i, 3).Value = 4 And (Cells(i + 1, 3).Value = 5 Or Cells(i + 1, 3).Value = 6) Then
comptc = comptc + 1
End If
Next i

'collage des resultats dans le fichier data.xls
Windows("data-extracted.xls").Activate

Worksheets("Input").Cells(rCount, 2).Value = compta
Worksheets("Input").Cells(rCount, 4).Value = comptc

rCount = rCount + 1

' retour au fichier de data
Windows("data.xls").Activate 'Go back to file
ActiveSheet.Next.Select

Loop

End Sub
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. Essaie d'activer une range dans la feuille que tu viens de sélectionner. Si seule la feuille est active et aucune cellule, ça ne marchera jamais.
    1. Bonjour,

      Merci pour ta reponse. Le truc c'est que je viens d'essayer mais cela ne fonctionne pas, ou alors c'est que je ne suis pas capable d'ecrire la commande de façon satisfaisante.
      Pourrais tu me dire, s'il te plait, ce que tu r'ajouterais à ma ligne de commande?

      Merci d'avance
      1. ou dois je placer la commande d'activation de range dans mon code?
        1. Bonjour,

          Pour ma part, votre code fonctionne bien à l'exception de la boucle :

          
          Do
            ...
          Loop Until (rCount < 16) ???
          


          Il n'y a pas de test de fin dans la boucle ???

          Il n'y a pas non plus de test de fin pour la dernière feuille du classeur ???

                  ' retour au fichier de data
                  Windows("data.xls").Activate 'Go back to file
                  If (ActiveSheet.Name = "Fin") Then
                      DoEvents
                      'MsgBox "Dernière feuille!"
                  Else
                      ActiveSheet.Next.Select
                  End If
          


          Lupin
          1. Merci pour votre reponse,

            Grace à l'ajout du test de fin pour la dernière feuille du classeur et l'ajout à la boucle Do until, tout fonctionne parfaitement maintenant c'est parfait!

            Thanks!