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

wastronet

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

cathodique

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

wastronet

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

  • Données.xls
    22.5 KB · Affichages: 27
  • Feuille d'import.xlsm
    30.9 KB · Affichages: 31
  • Données.xls
    22.5 KB · Affichages: 28

don_pets

XLDnaute Occasionnel
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...
 

wastronet

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

wastronet

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

don_pets

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

cathodique

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

  • don_pets(2).xlsm
    25.3 KB · Affichages: 47

don_pets

XLDnaute Occasionnel
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 "," :cool:

Merci tube !

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

don
 

Discussions similaires

Statistiques des forums

Discussions
312 527
Messages
2 089 361
Membres
104 140
dernier inscrit
lrauche