XL 2016 Copier les colonnes lors de la sélection dans la Chechbox

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

Dadi147

XLDnaute Occasionnel
bienvenu à tous
Il est nécessaire de ne pas spécifier le lieu de copie, par exemple, pourquoi la colonne 5 a été choisie en premier, elle est copiée dans A : A, et si la colonne 3 a été sélectionnée dans le deuxième choix, elle est copiée dans B : B et vice versa , l'ordre des colonnes est fonction de la sélection dans la case à cocher

VB:
Private Sub CheckBox1_Click()
sh1.Select
 If form1("CheckBox1").Value = True Then
Columns("A:A").Select
    Selection.Copy
    Sheets("sheet2").Select
    Columns("A:A").Select
    sh2.Paste
 Else
    CheckBox1.Value = False
    sh2.Columns("A:A") = ""
    sh2.Select
    End If
End Sub

Private Sub CheckBox2_Click()
 sh1.Select
 If form1("CheckBox2").Value = True Then
Columns("B:B").Select
    Selection.Copy
    Sheets("sheet2").Select
    Columns("B:B").Select
    sh2.Paste
 Else
    CheckBox2.Value = False
    sh2.Columns("B:B") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox3_Click()
 sh1.Select
 If form1("CheckBox3").Value = True Then
Columns("C:C").Select
    Selection.Copy
    Sheets("sheet2").Select
    Columns("C:C").Select
    sh2.Paste
 Else
    CheckBox3.Value = False
    sh2.Columns("C:C") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox4_Click()
 sh1.Select
 If form1("CheckBox4").Value = True Then
Columns("D:D").Select
    Selection.Copy
    Sheets("sheet2").Select
    Columns("D:D").Select
    sh2.Paste
 Else
    CheckBox4.Value = False
    sh2.Columns("D:D") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox5_Click()
 sh1.Select
 If form1("CheckBox5").Value = True Then
Columns("E:E").Select
    Selection.Copy
    Sheets("sheet2").Select
    Columns("E:E").Select
    sh2.Paste
 Else
    CheckBox5.Value = False
    sh2.Columns("E:E") = ""
    sh2.Select
    End If
End Sub
 

Pièces jointes

Bonjour,

Evitez les select et les activate, sauf pour des besoins très spécifiques.
Pour copier/coller à droite du tableau déjà présent :
VB:
If form1("CheckBox1").Value = True Then
    Columns("A:A").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial

Pour supprimer ça devient plus complexe. Si il n'y a qu'une apparition de la colonne, il suffit de boucler sur les En-Têtes pour supprimer la colonne dont l'En-Tête est égal à la valeur trouvée dans la checkbox sélectionnée.
Si il peut y avoir plusieurs présences, ça devient plus compliqué.

Bonne journée,
 
Bonjour,

Evitez les select et les activate, sauf pour des besoins très spécifiques.
Pour copier/coller à droite du tableau déjà présent :
VB:
If form1("CheckBox1").Value = True Then
    Columns("A:A").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial

Pour supprimer ça devient plus complexe. Si il n'y a qu'une apparition de la colonne, il suffit de boucler sur les En-Têtes pour supprimer la colonne dont l'En-Tête est égal à la valeur trouvée dans la checkbox sélectionnée.
Si il peut y avoir plusieurs présences, ça devient plus compliqué.

Bonne journée,
Franchement, je suis débutant et je ne sais pas comment m'y prendre. Si vous avez une idée qui puisse m'aider, j'en serai ravi
 
Commencez par remplacer votre code par :
VB:
Private Sub CheckBox1_Click()
sh1.Select
 If form1("CheckBox1").Value = True Then
    Columns("A:A").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial
 Else
    CheckBox1.Value = False
    sh2.Columns("A:A") = ""
    sh2.Select
    End If
End Sub

Private Sub CheckBox2_Click()
 sh1.Select
 If form1("CheckBox2").Value = True Then
    Columns("B:B").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial
 Else
    CheckBox2.Value = False
    sh2.Columns("B:B") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox3_Click()
 sh1.Select
 If form1("CheckBox3").Value = True Then
    Columns("C:C").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial
 Else
    CheckBox3.Value = False
    sh2.Columns("C:C") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox4_Click()
 sh1.Select
 If form1("CheckBox4").Value = True Then
    Columns("D:D").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial
 Else
    CheckBox4.Value = False
    sh2.Columns("D:D") = ""
    sh2.Select
    End If
End Sub
Private Sub CheckBox5_Click()
 sh1.Select
 If form1("CheckBox5").Value = True Then
    Columns("E:E").Copy
    Sheets("sheet2").Cells(1, Sheets("sheet2").Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial
 Else
    CheckBox5.Value = False
    sh2.Columns("E:E") = ""
    sh2.Select
    End If
End Sub

Testez ça pour la copie des données. On regarde ensuite pour ce qui est de la suppression.
Cliquez sur les colonnes dans l'ordre que vous le souhaitez et dites moi si ça convient à votre demande.
 
Comment ça "vider" ? Vous parlez de quand vous décochez la première checkbox c'est ça ?
C'est là que j'ai besoin de savoir comment ça doit se comporter. Si j'importe les colonnes dans l'ordre suivant :
C D B A et que je déclique TTC1, quelle colonne doit se supprimer ? Toute colonne de la feuille 2 dont l'en-tête est TTC1 ?
 
Comment ça "vider" ? Vous parlez de quand vous décochez la première checkbox c'est ça ?
C'est là que j'ai besoin de savoir comment ça doit se comporter. Si j'importe les colonnes dans l'ordre suivant :
C D B A et que je déclique TTC1, quelle colonne doit se supprimer ? Toute colonne de la feuille 2 dont l'en-tête est TTC1 ?
Ce n'est pas le cas. La première colonne de b:b est copiée
Si ce n'est pas gênant, vous pouvez essayer le fichier car je n'ai peut-être pas pu l'expliquer
 

Pièces jointes

- 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

Discussions similaires

Réponses
18
Affichages
134
Réponses
2
Affichages
410
Réponses
3
Affichages
449
Retour