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

Supression de colonnes: Ma macro fait n'importe quoi...

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

F

Fab57330

Guest
Bonjour à tous,
Aprés de multiples tentatives et recherches, je ne trouves aucune solution... Je réalise en fin de compte une sélection de colonne en fonction d'une case à cocher:

Code:
Dim cols$
        Sheets("WORKSHEET").Range("A1").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    
        If W_IMPORT.User_btn_GENT.Value = True Then
            cols = "C:H,J:O,Q:V,X:AC,AE:AJ,AL:AQ,AS:AX,AZ:DI,DK:EM"
        ElseIf W_IMPORT.User_btn_KME.Value = True Then
            cols = "C:H,J:V,X:AC,AE:AJ,AK:AQ,AS:AX,AZ:BL,BM:BZ,DA:DI,CO:CZ,CD:CN,CA:CC,DK:DP,DR:DW,DY:ED,EF:EK,EM:EM"
        Else:
        End If

        Sheets("WORKSHEET").Range(cols).Select
        Selection.DELETE Shift:=xlToLeft

Dans le cas ou je réalise ceci dans la continuité de ma macro (Formattage, import de mon CSV), la supression fait n'importe quoi... Il décalle les données de ma première ligne, mais ne fait rien sur les lignes qui suivent...

Je vous ai joint en pièce jointe un exemple de fichier... Je peux aussi vous joindre l'intégralité de ma macro, cependant ceci ne pourra se faire qu'a une seule personne qui m'aidera, le fichier est confidentiel.

Merci d'avance de votre aide,
Fab.
 

Pièces jointes

Re : Supression de colonnes: Ma macro fait n'importe quoi...

Bonjour

Je vous ai joint en pièce jointe un exemple de fichier... Je peux aussi vous joindre l'intégralité de ma macro, cependant ceci ne pourra se faire qu'a une seule personne qui m'aidera, le fichier est confidentiel.

Sur XLD, l'habitude c'est ne de jamais joindre de fichier confidentiel, mais créer un fichier exemple,pour illustrer le problème rencontré, mais avec des données fictives.

Prends le temps de créer un tel fichier, et il sera plus facile de t'aider 😉
 
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Bonjour,
Malheureusement joindre un fichier exemple n'est pas possible... (ca reviens a donner mon code lol). Je peux cependant vous joindre mon code complet, ce qui permettrai de mieux vous aider? Cependant, je ne pourrais joindre les "UserForms"...

Pour moi je pense que le soucis proviens d'une fonction qui s'est executée avant... mais laquelle...? lol
 
Dernière modification par un modérateur:
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Re


En quoi ton code VBA est-il confidentiel ???

Tous les codes VBA proposés sur le forum ne le sont pas non ?

XLD est un forum de partage de connaissances, non ?

PS: l'aide que t'a apporté Efgé dans ce fil (j'ai pris ce fil au hasard) heureusement pour toi se fit au grand jour 🙄
https://www.excel-downloads.com/threads/import-de-plusieurs-fichiers-txt.181948/
Il t'a proposé un code VBA.
Que ce serait-il passé s'il t'avait dit, "j'ai un code VBA pour ta question mais il est confidentiel ..."
 
Dernière édition:
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Effectivement...
Bon, je vous ai joint mon fichier EXCEL.

INFO !
Pour faire fonctionner le code, dans le même dossier que le fichier EXCEL, créer un dossier nommé "L3", dans lequel vous mettrez le fichier txt que je viens de vous joindre.
Dans l'UserForm qui s'ouvre et vous demande la config, remplissez-le comme suit:
1. Strand : 3
2. Files : 1
3. Source : Cliquez sur "..." et pointez le dossier qui contiens le fichier EXCEL. Si le fichier excel se trouve dans "H:\ARSA\Form\file.xls", alors pointer "H:\ARSA\Form\".

Merci par avance de votre aide... Je sèche totalement la, je ne comprends pas ce qui peut bloquer...
 
Dernière modification par un modérateur:
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Le code que j'ai mentionné se trouve dans le module C_IMPORT, vers la fin du module, aprés:

''''''''''''''''''''''''''''''''''''''''''
''' DEBUT de la mise en forme finale '''
''''''''''''''''''''''''''''''''''''''''''
 
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Re


On se comprends pas (lol)

Il suffit d'isoler le module contenant ton code VBA qui pose problème, de le coller dans un nouveau fichier excel
(pas besoin des de tous les userforms)

Ta question nous dit que c'est la suppression de colonnes qui pose problème.

Donc on a juste besoin d'un fichier simplifié qui illustre se problème.
(on a déjà un fichier csv)
PS: Si j'ai bien lu, le code problématique se trouve dans Sub IMPORT_FILES_3() , non ?

Dans ta PJ, je ne vois pas de feuille nommée WORKSHEET ???
Code:
'DEBUT PREPARATION DE L'IMPORT FINAL
            Sheets("WORKSHEET").Cells.DELETE Shift:=xlUp
 
Dernière édition:
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Staple1600,
Faudra m'expliquer comment celà est réalisable alors que le code en question nécessite les UserForm !
De plus, comme mentionné en premier, le code tout seul fonctionne impec. C'est a dire que si je lance mon code comme suit, il suprimme bien mes colonnes :

Code:
        Sheets("WORKSHEET").Range("A1").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    
        If W_IMPORT.User_btn_GENT.Value = True Then
            cols = "C:H,J:O,Q:V,X:AC,AE:AJ,AL:AQ,AS:AX,AZ:DI,DK:EM"
        ElseIf W_IMPORT.User_btn_KME.Value = True Then
            cols = "C:H,J:V,X:AC,AE:AJ,AK:AQ,AS:AX,AZ:BL,BM:BZ,DA:DI,CO:CZ,CD:CN,CA:CC,DK:DP,DR:DW,DY:ED,EF:EK,EM:EM"
        Else:
        End If
        
        Sheets("WORKSHEET").Range(cols).Select
        Selection.DELETE

Cependant, dès que je lance la totalité de mon code, rien ne va plus... Il suprimme uniquement les cellules de ma première ligne... Et je ne comprends pas la raison... Ce code ci-dessus est inséré dans le module suivant:

Code:
Sub IMPORT_FILES_3() 'IMPORT étape 3: Import des fichiers CSV temporaires
    Dim l As Integer
    Dim REP, Sheet, fichier$, cols
    Application.ScreenUpdating = False
    
    W_IMPORT.User_infobox_STEP = "Step 3/5: Import preparation"
    
    For l = 1 To W_IMPORT.User_files.Value
        'DEBUT PREPARATION DE L'IMPORT FINAL
            Sheets("WORKSHEET").Cells.DELETE Shift:=xlUp
            REP = W_IMPORT.User_source.Value & "L" & W_IMPORT.User_strand.Value & "\"
            fichier = REP & l & ".csv"
            Sheet = "DATAS_" & l
        'FIN PREPARATION DE L'IMPORT FINAL
    
    ''''''''''''''''''''''''''''''''''
    ''' DEBUT DE L'IMPORT FICHIERS '''
    ''''''''''''''''''''''''''''''''''
        Sheets("WORKSHEET").Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & fichier, _
            Destination:=Range("$A$1"))
            .Name = Sheet
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    ''''''''''''''''''''''''''''''''''
    '''  FIN DE L'IMPORT FICHIERS  '''
    ''''''''''''''''''''''''''''''''''
    
    ''''''''''''''''''''''''''''''''''''''''''
    '''  DEBUT de la mise en forme finale  '''
    ''''''''''''''''''''''''''''''''''''''''''
        Sheets("WORKSHEET").Range("A1").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    
        If W_IMPORT.User_btn_GENT.Value = True Then
            cols = "C:H,J:O,Q:V,X:AC,AE:AJ,AL:AQ,AS:AX,AZ:DI,DK:EM"
        ElseIf W_IMPORT.User_btn_KME.Value = True Then
            cols = "C:H,J:V,X:AC,AE:AJ,AK:AQ,AS:AX,AZ:BL,BM:BZ,DA:DI,CO:CZ,CD:CN,CA:CC,DK:DP,DR:DW,DY:ED,EF:EK,EM:EM"
        Else:
        End If
        
        Sheets("WORKSHEET").Range(cols).Select
        Selection.DELETE
        
        Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:=".", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        Columns("C:C").DELETE Shift:=xlToLeft
        
        Sheets("WORKSHEET").Range("A2").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets(Sheet).Select
        Range("A8").Select
        ActiveSheet.Paste
    ''''''''''''''''''''''''''''''''''''''''''
    '''   FIN de la mise en forme finale   '''
    ''''''''''''''''''''''''''''''''''''''''''
    Next l
    
    Sheets("LOGFILE").Range("G4") = "OK"
    'LOGFILE_EXPORT
    
End Sub

Je ne sais pas si ainsi ca ira pour m'aider ?
 
Re : Supression de colonnes: Ma macro fait n'importe quoi...

La feuille WORKSHEET est cachée. Ainsi que d'autres feuilles.
Staple, aurais-tu MSN pour discutter plus facilement et en live? (ou skype)
 
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Re


Cachée ou non il n'y a pas de feuille WORKSHEET

Il y a une feuille WS certes.

Je persiste à dire qu'il serait plus simple (puisque nous sommes en debug) de tester l'import sur un fichier exemple crée pour l'occasion (gardons si tu y tiens l'userform W_IMPORT) et de tester ta proc en étape par étape.

PS: Nous sommes sur un forum donc l'intérêt c'est d'être plusieurs 😉 j
et je suis réfractaire à MSN et cie 🙄
 

Pièces jointes

  • ex.png
    2.6 KB · Affichages: 79
  • ex.png
    2.6 KB · Affichages: 76
Dernière édition:
Re : Supression de colonnes: Ma macro fait n'importe quoi...

J'ai trouvé d'ou proviens le problème. Je voulais par macro séparer la date et l'heure ainsi:

Code:
         'Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        'Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        'Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        'Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:=".", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        'Columns("C:C").DELETE Shift:=xlToLeft

Cependant, aprés avoir réalisé ceci sur le premier fichier, il importait mal le second fichier, ce qui créai ce décallage... Cependant, je vais devoir maintenant trouver une autre solution afin de séparer DATE/HEURE...

Je ne sais pas si vous avez une idée ?
 
Re : Supression de colonnes: Ma macro fait n'importe quoi...

Re,

Le soucis de la fonction "SPLIT", c'est qu'elle ne peut pas la réaliser sur une colonne complete sauf erreur de ma part? Je suis obligé de scrutter mes lignes les unes aprés les autres, non ?

Merci d'avance,
Fab
 
- 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

F
Réponses
1
Affichages
803
Fab57330
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…