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

Fab57330

XLDnaute Junior
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

  • Fichier.zip
    3.7 KB · Affichages: 40
  • Fichier.zip
    3.7 KB · Affichages: 38
  • Fichier.zip
    3.7 KB · Affichages: 38

Staple1600

XLDnaute Barbatruc
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 ;)
 

Fab57330

XLDnaute Junior
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 édition:

Staple1600

XLDnaute Barbatruc
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 :rolleyes:
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:

Fab57330

XLDnaute Junior
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 édition:

Fab57330

XLDnaute Junior
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 '''
''''''''''''''''''''''''''''''''''''''''''
 

Staple1600

XLDnaute Barbatruc
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:

Fab57330

XLDnaute Junior
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 ?
 

Staple1600

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

Re


Cachée ou non il n'y a pas de feuille WORKSHEET
ex.png
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 :rolleyes:
 

Pièces jointes

  • ex.png
    ex.png
    2.6 KB · Affichages: 71
  • ex.png
    ex.png
    2.6 KB · Affichages: 69
Dernière édition:

Fab57330

XLDnaute Junior
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 ?
 

Fab57330

XLDnaute Junior
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
 

Discussions similaires