Probleme avec ActiveSheet.Next sous VBA

Résolu/Fermé
NicuxUSA Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 15 février 2007 - 14 févr. 2007 à 14:05
NicuxUSA Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 15 février 2007 - 15 févr. 2007 à 11:35
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

5 réponses

ruzakruzak Messages postés 459 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 mai 2007 247
14 févr. 2007 à 14:38
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.
0
NicuxUSA Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 15 février 2007
14 févr. 2007 à 14:49
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
0
NicuxUSA Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 15 février 2007
14 févr. 2007 à 15:05
ou dois je placer la commande d'activation de range dans mon code?
0
Utilisateur anonyme
14 févr. 2007 à 17:11
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
0

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

Posez votre question
NicuxUSA Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 15 février 2007
15 févr. 2007 à 11:35
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!
0