Bonjour,

Mon projet est le suivant

Mise en contexte: Je suis chargé de réalisé un fichier excel permettant de récupérer les données d'un autre fichier excel, les collés et faire plusieurs page de calcul via ces données.

Problématique: J'aimerais faciliter l'importation de cette liste d'outillage par un bouton "sélectionner" qui ouvre une fenêtre permettant de sélectionner le fichier afin d'avoir son chemin, j'ai suivi qui permettait de le faire avec un fichier .txt ou .csv, j'aimerais maintenant l'adapter à un fichier .xlsx et ensuite, une fois selectionner, grâce à un bouton importer, copier coller ce fichier contenant uniquement une feuille, dans la feuille "Liste outillage" du fichier.

J'espère que la problématique est assez claire.

je vous joins mon fichier ainsi que le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Dim ligne_debut As Integer:
Dim colonne_debut As Integer:
Dim ligne_fin As Integer:
Dim colonne_fin As Integer:
Dim ligne_enCours As Integer:
Dim colonne_enCours As Integer:
 
Private Sub exporter_Click()
Dim nom_fichier As String
 
ligne_debut = 2: 'signifie que l'importation des données se fera en cellule B2
colonne_debut = 2:
ligne_enCours = ligne_debut: colonne_enCours = colonne_debut
 
Cells.Clear
 
For i = 0 To liste_fichiers.ListCount - 1
lecture (liste_fichiers.List(i))
 
Next i
 
traitement
nom_fichier = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt),*.txt")
sortie.Value = nom_fichier
ecriture (nom_fichier)
 
End Sub
 
Private Sub fermer_Click()
 
End Sub
 
Private Sub importer_Click()
Dim fichier_choisi As String
 
fichier_choisi = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Selectionner un fichier CSV")
 
If (LCase(fichier_choisi) <> "faux" And fichier_choisi <> "0") Then
liste_fichiers.AddItem (fichier_choisi)
End If
 
 
End Sub
 
Private Sub UserForm_Click()
 
End Sub
 
Private Sub lecture(fichier As String)
Dim depart As Integer, position As Integer
Dim texte As String, tampon As String
 
Open fichier For Input As #1
 
Do While Not EOF(1)
 
Line Input #1, texte
depart = 1: position = 1
Do While (position <> 0)
 
position = InStr(depart, texte, ";", 1)
If position = 0 Then
tampon = Mid(texte, depart)
Sheets("import").Cells(ligne_enCours, colonne_enCours).Value = tampon
Exit Do
Else
tampon = Mid(texte, depart, position - depart)
End If
 
Sheets("import").Cells(ligne_enCours, colonne_enCours).Value = tampon
depart = position + 1
colonne_enCours = colonne_enCours + 1
Loop
 
colonne_enCours = colonne_debut
ligne_enCours = ligne_enCours + 1
 
Loop
 
Close #1
 
End Sub
Merci de votre aide