[RESOLU] Importation et traitement de données en VBA

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

W

wastronet

Guest
Bonjour à tous,

Je cherche à importer un fichier en xls dans un autre xlsx. La difficuluté majeur est qu'il s'agit de 3 colonnes classiques, la quatrième étant remplie de données en csv données séparé par des ",". Je voudrais de plus enlever les données une fois copié dans mon xlsx.
Après avoir beaucoup cherché, sans trouver vraiment la solution à mes besoins, je comptais partir sur une solutino en VBA avec un bouton à actionner pour aller chercher les données. Mais jsuque là aucune de mes solutions ne fonctionnent.

Auriez vous des pistes pour m'aiguiller ?

Merci d'avance ...

Alexandre
 
Dernière modification par un modérateur:
Re : Importation et traitement de données en VBA

Bonjour Alexandre,

Apparemment tu n'as pas lu la charte du forum. Il faut joindre un fichier et être le plus explicite possible.

Sinon, tu risques d'attendre longtemps voire ne pas avoir de réponse du tout.

Cordialement,

Cathodique
 
Re : Importation et traitement de données en VBA

Bonjour à tous,

Merci Cathodique pour tes remarques ! Je vais essayer de préciser un peu plus et de joindre des fichiers.

Donc pour faire très simple je voudrais faire cela à l'aide d'un bouton sur la feuille d'import :

Données (format x y z w,w,w,w) = Import => Feuille d'import (format x y z w w w w)
Voici les fichiers joints

Un grand merci de votre aide par avance !!

Alexandre
 

Pièces jointes

Re : Importation et traitement de données en VBA

'llo,

tu souhaites réellement tout coller dans une cellule ? du genre bois de chauff,1,1,13, tronçonnage tout ça dans une cellule? ou bien tu veux les ventiler cellule par cellule ? Non pas que je ne trouve pas ça très lisible, mais bon...
 
Re : Importation et traitement de données en VBA

Merci de prendre le temps de me répondre !

Donc il s'agit bien effectivement de ventiler. Le but étant d'aller chercher les données dans la feuille de données, de couper les valeurs qui auront été rentrés et de les ajouter à la suite des données déjà existantes dans la feuille d'import de données. Au moment de l'import,il faut donc ventiler pour que la cellule w,w,w,w deviennent w w w w.

A la fin, on doit donc avoir un tableau vide avec seulement les intitulés des colonnes (pour la feuille de données) et de l'autre coté on doit avoir les anciennes données + les nouvelles données au sein du même document. (feuille d'import)

Encore merci de prendre le temps ..

Alexandre
 
Re : Importation et traitement de données en VBA

Mhh, il s'agit déjà de ce que je viens de faire, l'onglet "données importées" correspond dans la structure au fichier "feuille de données".

Pour expliquer le pourquoi de la concatenation, il s'agit d'un code barre qui incorpore des informations, l'enregistrement du CB se fait dans une base de données excel qui est ensuite analysé avec une autre feuille excel
 
Re : Importation et traitement de données en VBA

This is my way :

Première piste je lancerai l'import directement à partir de ton fichier "données" et non "feuille d'import".

C'est lui qui va piloter, le truc, ensuite voici le code que je ferais:

Pour l'import :
Code:
Dim nom$, WBKSource As Workbook
With Application.FileDialog(msoFileDialogOpen)
   .Title = "Yeaaa choose your Fichier"
    .Filters.Clear
    .Filters.Add "Ton Tableur", "*.xlsX*, *.Xlsm*, *.Xls*"
    .AllowMultiSelect = False
        If .Show <> 0 Then
        nom = .SelectedItems(1)
            Set WBKSource = Workbooks.Open(nom)
           With WBKSource
                .ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1)
                .Close False
            End With
        Else
        MsgBox "Boaaa t'veux rien !", , "dô_Ôb": Exit Sub
        End If
End With

Pour le regroupement :
Code:
Sheets(1).Select
For i = 1 To Range("D36553").End(xlUp).Row
    If Cells(i, 4) <> "" Then
    Cells(i, 10).Value = Cells(i, 4).Value & "," & Cells(i, 5).Value & "," & Cells(i, 6).Value & "," & Cells(i, 7).Value & "," & Cells(i, 8).Value & "," & Cells(i, 9).Value
    End If
Next i

Pour la mise en forme :
Code:
Sheets(1).Columns("D:I").Select
Selection.Delete
Sheets(1).Rows("1:1").Select
Selection.Delete Shift:=xlUp

Pour coller tout ça à la suite:
Code:
Sheets(1).Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuilles de données").Activate
Sheets("Feuilles de données").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Enfin shootage onglet inutile:
Code:
Application.DisplayAlerts = False
Worksheets(1).Delete
Application.DisplayAlerts = True

so ?

don
 
Re : Importation et traitement de données en VBA

Bonsoir,

j'ai repris le fichier de Don_pets et j'y ai apporté ma contribution, enfin d'après ce que j'ai compris.

Extraire les valeurs de la colonne 4 séparées par un virgule dans des cellules.

J'espère que c'est ce que tu souhaites.

Bonne soirée à tous.
 

Pièces jointes

Re : Importation et traitement de données en VBA

Merci merci merci c'est vraiment top ! Vous êtes vraiment géniaux à passer du temps pour résoudre les problèmes des autres !! Et en plus avec efficacité !!
Ca marche super bien !

Encore merci !!!
 
Re : Importation et traitement de données en VBA

Yep,

J'avais pas bien lu ton post en haut qui spécifiait que tu voulais ventiler la cellule qui contentait des "," 😎

Merci tube !

Content que cela te soit utile (et qu'en plus ça te plaise ^^)

don
 
- 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.
Retour