• Initiateur de la discussion Initiateur de la discussion PF
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

PF

Guest
Bonjour à tous.
Voici mon problème.
J'ai cree un code qui fonctionne très bien lorsque je lui associe un bouton (barre formulaire) mais qui ne fonctionne plus du tout lorsque je lui associe un commandbutton (barre boite à outils controle).

Qui pourrait m'éclairer.
merci d'avance.
Vous trouverez le code ci dessous.
Patrick



Private Sub okfeuil3_Click()
Application.ScreenUpdating = False

Dim counter As Long
Dim compteur As Long
Dim count As Long
Dim countb As Long

counter = 6
Worksheets(3).Activate
Cells(counter, 1).Activate
'Feuille3, cellule repéré par le counter'
'et la colonne 1, sont active'
Do Until Cells(counter, 1) = ""
counter = counter + 1
'effectuer la boucle suivante :'
'tant que la cellule repéré par le counter'
'et la colonne n'est pas vide, rajouté 1 au'
'counter'
Loop
compteur = 0
For X = 6 To counter
If Cells(X, 1).Text = "Recu Bank" Then
' Si Text est égal à "Recu Bank"
compteur = compteur + 1
If compteur = 3 Then
Y = X
For w = 6 To Y
Worksheets(3).Rows(w).Cut
ActiveSheet.Paste Destination:=Worksheets(4).Rows(w)
Next w
For w = 6 To Y
Worksheets(3).Rows(6).Delete Shift:=xlUp
Next w
Else
End If
End If
Next X

count = 1
Worksheets(5).Activate
Cells(count, 1).Activate
'Feuille5, cellule repéré par le counter'
'et la colonne 1, sont active'
Do Until Cells(count, 1) = ""
count = count + 1
'effectuer la boucle suivante :'
'tant que la cellule repéré par le counter'
'et la colonne n'est pas vide, rajouté 1 au'
'counter'
Loop

For w = 6 To Y
Worksheets(4).Rows(w).Cut
ActiveSheet.Paste Destination:=Worksheets(5).Rows(count)
count = count + 1
Next w
For w = 6 To Y
Worksheets(4).Rows(6).Delete Shift:=xlUp
Next w

Worksheets(3).Activate


Application.ScreenUpdating = True
End Sub
 
Bonsoir PF et les amis du forum

Je pense que ton pb provient du contrôle

Dans la barre d'outils"contrôles" actives le mode création
places un nouveau bouton sur tafeuille
Toujours en mode création sélectionnes le nouveau bouton avec le clic droit de la souris et selectionnes"Visualiser le code"
Tu vas te retrouver dans VBE et dans la nouvelle macro affichée tu colles ton code sans la mention Private Sub okfeuil3_Click()

Private Sub CommandButton1_Click()

Ici ton code

End sub
Tu désactives le mode création et là ta macro devrait fonctionner!
Si elle ne fontionne toujours pas alors je ne vois pas le pb.

Bien amicalement
jacques de ryes
 
Bonjour Jacques.
J'ai effectué la démarche que tu m'as propsé mais cela ne fonctionne toujours pas !

As tu regardé mon code ?
Et y as tu décellé une ou des erreurs.
je suppose qu'il est un peu lourd, mais je l'allegerai après, une fois que ce problème sera résolu.

Mais dis moi, comment cela se fait il que l'on ai quelques fois des problèmes lors de la création des boutons ?

Bonne soirée, merci encore de ton aide.
Patrick
 
Bonjour Jacques.
J'ai effectué la démarche que tu m'as propsé mais cela ne fonctionne toujours pas !

As tu regardé mon code ?
Et y as tu décellé une ou des erreurs.
je suppose qu'il est un peu lourd, mais je l'allegerai après, une fois que ce problème sera résolu.

Mais dis moi, comment cela se fait il que l'on ai quelques fois des problèmes lors de la création des boutons ?

Bonne soirée, merci encore de ton aide.
Patrick
 
bonsoir Jacques , Bonsoir Patrick

patrick tu peux tester la macro modifiée

Application.ScreenUpdating = False

Dim counter As Long
Dim compteur As Long
Dim count As Long
Dim countb As Long

counter = 6
Worksheets(3).Activate
Worksheets(3).Cells(counter, 1).Select
'Feuille3, cellule repéré par le counter'
'et la colonne 1, sont active'
Do Until Cells(counter, 1) = ""
counter = counter + 1
'effectuer la boucle suivante :'
'tant que la cellule repéré par le counter'
'et la colonne n'est pas vide, rajouté 1 au'
'counter'
Dim x
Dim y
Dim w
Loop
compteur = 0
For x = 6 To counter
If Cells(x, 1).Text = "Recu Bank" Then
' Si Text est égal à "Recu Bank"
compteur = compteur + 1
If compteur = 3 Then
y = x
For w = 6 To y
Worksheets(3).Rows(w).Cut
ActiveSheet.Paste Destination:=Worksheets(4).Rows(w)
Next w
For w = 6 To y
Worksheets(3).Rows(6).Delete Shift:=xlUp
Next w
Else
End If
End If
Next x

count = 1
Worksheets(5).Activate
Worksheets(5).Cells(count, 1).Activate
'Feuille5, cellule repéré par le counter'
'et la colonne 1, sont active'
Do Until Cells(count, 1) = ""
count = count + 1
'effectuer la boucle suivante :'
'tant que la cellule repéré par le counter'
'et la colonne n'est pas vide, rajouté 1 au'
'counter'
Loop

For w = 6 To y
Worksheets(4).Rows(w).Cut
ActiveSheet.Paste Destination:=Worksheets(5).Rows(count)
count = count + 1
Next w
For w = 6 To y
Worksheets(4).Rows(6).Delete Shift:=xlUp
Next w

Worksheets(3).Activate

Application.ScreenUpdating = True


bonne soirée et bon début de week end
michel
lapin4.gif
 
Bonjour Michel.

En fait, je pense que l'on n'a pas besoin de définir de variables pour a, b et c.
Puisque on dit que se sont de entiers.

Bon week end.

Si malgrè tout il faut les définir peux tu m'envoyer un mel en me donnant le nom des variables.
Merci
PF
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
703
Réponses
4
Affichages
580
Réponses
10
Affichages
530
Réponses
5
Affichages
477
Retour