Probleme avec ActiveSheet.Next sous VBA
Résolu
NicuxUSA
Messages postés
4
Statut
Membre
-
NicuxUSA Messages postés 4 Statut Membre -
NicuxUSA Messages postés 4 Statut Membre -
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
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
A voir également:
- Excel vba activesheet
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
5 réponses
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.
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
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
Bonjour,
Pour ma part, votre code fonctionne bien à l'exception de la boucle :
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 ???
Lupin
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question