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
 

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("A1:pPP1").Find(xStr, , xlValues, xlWhole, , , True)

Adresse = xRg.Address

Adresse.EntireColumn.Select

End If
End Sub
 

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
149
Réponses
10
Affichages
417