Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA Excel

INIME-

XLDnaute Nouveau
Sur une base de données, j'ai une centaines de colonnes, je souhaite me débarasser de certains de ces colonnes (problème c'est que c'est une extract ==> donc travaille répétitif à chaque extraction)

Je voudrais créer un formulaire avec des cases à cocher et mettre devant chaque case l'en-tête de colonne
Dès que je coche une case, je voudrais qu'excel aille chercher la colonne ou les colonnes, les sélectionner et par la suite exporter la sélection dans un autre fichier excel.


Merci beaucoup pour votre aide
 

job75

XLDnaute Barbatruc
Bonsoir INIMEGPAC,

Vous ne croyez pas qu'il serait plus simple de supprimer les colonnes inutiles ?

Si vous nous dites quels critères permettent de les distinguer on pourra créer une macro.

A+
 

INIME-

XLDnaute Nouveau
Je ne peux les supprimer à la mano car j'ai à peu près 162 colonnes qui sortent dans l'extract,

Pourquoi je voudrais passer par la recherche parce que les colonnes peuvent changer d'ordre au fil de temps.

je souhaite avoir des cases à cocher pour chaque colonne

Par case 1 [ChechBox] ====> Colonne1 [Text]
Dès que j'appuie sur la/ les chechsBox, puis un bouton Ok, e voudrais que Excel sélectionne Colonnes dont les cases à cocher sont cochées et de n'exporter que la sélection dans un nouveau fichier Excel

J'ai mis en PJ un exemple

Grand Merci
 

INIME-

XLDnaute Nouveau
J'ai essayé ça Mais ça n'a pas fonctionné




Private Sub CommandButton1_Click()
On Error Resume Next
If CheckBox1.Value = True Then

xStr = "Colonne 1"

xRg = Range("A1PP1").Find(xStr, , xlValues, xlWhole, , , True)

Adresse = xRg.Address

Adresse.EntireColumn.Select

End If
End Sub
 

job75

XLDnaute Barbatruc
Bah quels sont les critères pour conserver ou supprimer un en-tête de colonne ???

Il n'y a pas besoin d'être un expert pour comprendre que créer 162 cases à cocher est une aberration.
 

INIME-

XLDnaute Nouveau
Ah, ça dépend du besoin
En fait, selon le travail que je souhaite faire de cette extract.

Parfois je garde colonne 1, 2, 5 ?139 d'autres 13,16,100,

ça dépend, raison pour laquelle, je veux des cases à cocher,
 

GALOUGALOU

XLDnaute Accro
bonsoir inimegpac, bonsoir job75 bonsoir le forum
une solution à évaluer.
Avec une case à cocher je ne sais pas faire, mais je vous propose d'insérer une ligne en début de la feuille qui deviendra la ligne 1.
Dans cette 1re ligne écrire le chiffre "1" en première ligne des colonnes devant être supprimées.
la macro ci-dessous supprimera toutes les colonnes identifiées avec le chiffre "1" en première ligne
VB:
Sub supp()
Dim I As Integer
For I = 200 To 1 Step -1
    If Cells(1, I).Value = 1 Then Columns(I).Delete
Next I
End Sub
cordialement
galougalou
 

GALOUGALOU

XLDnaute Accro
re
et pour écrire automatiquement 1 avec la macro suivante (dans la feuille) sur clic droit, l'action sera rapide
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("a1:gr1"), Target) Is Nothing Then
ActiveCell = "1"
End If
End Sub
cdt
 

Discussions similaires

Réponses
9
Affichages
166
Réponses
10
Affichages
440
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…