Lancer une macro à partir d'une checkbox

  • Initiateur de la discussion Initiateur de la discussion charlyparis
  • 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 !

C

charlyparis

Guest
Voilà le problème:

Au début, je lançais cette macro à partir d'une case d'option du menu formulaire qui marchait très bien mais je me suis rendu compte qu'ill fallait plutôt que j'utilise des cases à cocher (Checkbox du menu Contrôle!) pour ce travail.

Donc je voudrais qu'en cochant le case, ca lance ma macro qui copie des données d'un tableau sur une autre feuille. Avec la case d'option, ca marche normalement mais avec la checkbox, ca ne copie rien!
Aidez-moi, svp!
Bon bien sûr je suis débutant!
Merci d'avance pour votre aide.

Voilà le programme :

Private Sub CheckBox3_Click()

If CheckBox3.Value = True Then
Worksheets("SF SI").Select

Dim i
Dim j
Dim k
Dim NumeroLigne
Dim boucleur
Dim N
'Dim boucleurbis
i = 4

'Application.CutCopyMode = False
For j = 4 To 62
Worksheets("SF SI").Select
If Cells(j, 7).Value <> "" Then
Range(Cells(j, 1), Cells(j, 4)).Select
Selection.Copy
Worksheets("Vos Compétences SF SI").Select
If IsEmpty(Range("A4")) Then
Worksheets("Vos Compétences SF SI").Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
i = i + 1

Else
Worksheets("Vos Compétences SF SI").Select
NumeroLigne = Worksheets("Vos Compétences SF SI").Range("A62").End(xlUp).Row + 1
Worksheets("Vos Compétences SF SI").Range("A" & NumeroLigne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End If

End If

Next j

End If
End Sub
 
Re : Lancer une macro à partir d'une checkbox

Bonjour Charlyparis et bienvenue sur ce forum 😉

J'ai regardé ton code,
si la procédure fontionne avec un "OptionButton"
il n'y a pas de raison que cela ne fonctionne pas avec le "CheckBox" 😕

As-tu fait correctement ton copier/coller de la procédure ?

Meilleurs voeux pour cette nouvelle année
 
Re : Lancer une macro à partir d'une checkbox

Meilleurs voeux à toi aussi Bruno!

Bah, j'ai fait un simple copier-coller après le if checkbox3.value= True...

Cela ne copie toujours rien...

Bon restons optimistes...J'espère que ce n'est pas encore un mystère de VBA!

🙁
 
Dernière modification par un modérateur:
Re : Lancer une macro à partir d'une checkbox

Le programme que j'avais entré dans la première case d'option était le même programme du dessus sans "if Checkbox3.Value= True Then"... Voilà! Rien de compliqué...

Mais ca ne marche tjs pas...
 
Re : Lancer une macro à partir d'une checkbox

bonsoir charlyparis, BrunoM45

bonne année à vous deux.

Pourrais-tu mettre ton fichier en pj de ton prochain post pour qu'on puisse voir ce qui se passe (le fichier zippé ne doit pas excéder 50ko donc limite-le à sa plus simple expression).

A+
 
Re : Lancer une macro à partir d'une checkbox

Le checkbox3 traite du métier n°= 3 dans l'onglet SF SI (Savoir-Faire Système d'information.


le problème est l'erreur 1004:
Range(Cells(j, 1), Cells(j, 4)).Select

alors que cette ligne marchait normalement avec une case d'option!

Merci encore pour votre aide 🙂
 

Pièces jointes

Re : Lancer une macro à partir d'une checkbox

re...

ta case d'option déclenchait une procédure dans un module (sub), ton checkbox lui déclenche une procédure Private qui est liée au feuillet sur lequel est placé ton bouton. Dans les procédures private, il faut se méfer de la propriété Range qui bug si on ne lui dit pas les choses correctement.

Je regarderai ce soir (vers 23h) comment contourner le problème.

A+
 
Re : Lancer une macro à partir d'une checkbox

re...

ci-joint fichier modifié, c'est une solution parmi tant d'autres

ai modifié le code comme ceci :
- suppression des variables inutiles, complément à la déclaration des variables (ecrire Dim i revient à ne rien écrire puisque par défaut elles sont déclarées en temps que Variant)
- allègement du code (on peut faire beaucoup plus court mais ai tenu à conserver l'esprit de ta macro)

Code:
Private Sub CheckBox3_Click()
Dim i, j, NumeroLigne As Integer
i = 4
If CheckBox3.Value = True Then
'Application.CutCopyMode = False
    For j = 4 To 62
    With Sheets("SF SI")
        If IsEmpty(.Cells(j, 7).Value) = False Then
        Application.ScreenUpdating = False
            If IsEmpty(Sheets("Vos Compétences SF SI").Cells(4, 1)) = True Then
                .Range("A" & j & ":D" & j).Copy Sheets("Vos Compétences SF SI").Range("A" & i)
                i = i + 1
            Else: NumeroLigne = Sheets("Vos Compétences SF SI").Range("A62").End(xlUp).Row + 1
                .Range("A" & j & ":D" & j).Copy Sheets("Vos Compétences SF SI").Range("A" & NumeroLigne)
            End If
        End If
    End With
    Next j
End If
End Sub

entre nous tu peux te contenter de ce code ci-dessous (la condition vérifiant si la cellule A4 de compétences SF SI est vide me semble inutile)
mais c'est à toi de voir :

Code:
Private Sub CheckBox3_Click()
Dim j, NumeroLigne As Integer
If CheckBox3.Value = True Then
'Application.CutCopyMode = False
    For j = 4 To 62
    With Sheets("SF SI")
        If IsEmpty(.Cells(j, 7).Value) = False Then
        Application.ScreenUpdating = False
        NumeroLigne = Sheets("Vos Compétences SF SI").Range("A62").End(xlUp).Row + 1
        .Range("A" & j & ":D" & j).Copy Sheets("Vos Compétences SF SI").Range("A" & NumeroLigne)
        End If
    End With
    Next j
End If
End Sub

en esperant que cela te convienne

a+
 

Pièces jointes

Re : Lancer une macro à partir d'une checkbox

Cela marche parfaitement bien! Grand merci Ledzepfred!

Maintenant, je vais rajouter deux autres cases à cocher avec ta même correction de la macro! J'ai aussi créé deux autres parties dans la macro que je vais rajouter : une partie qui supprime les doublons de lignes et une autre qui les trie automatiquement pour que ce soit nickel.

Faut-il que je créée un autre fil ou je peux mettre la suite du programme ici?
 
- 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
15
Affichages
771
Réponses
4
Affichages
728
Réponses
5
Affichages
904
Réponses
10
Affichages
789
Retour