VBA:importer une colonne depuis un fichier vers une colonne excl
amal_chtaibi
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
amal_chtaibi -
amal_chtaibi -
Bonjour les programmeurs
je me suis bloquée, d'ou la recherche d'aide, voilà mon problème
j'ai un classeur dans lequel j'ai créer un userform, et un dossier qui contient des fichiers de type .JLT qu'on peut ouvrir avec bloc note,
je veux que lorsque j'écris le nom du fichier dans un textbox, récupérer une colonne du fichier et l'ecrire dans une colonne dans mon classeur( c là ou le vrai travail commence)
le fichier contient des informations comme:
2821 0509$ $ $ $ $ 3456$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$6778WIREDR*
3162 0469$ $ $ $ $ 1120$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$5651WIREDR
3231 0351$ $ $ $ $ 4140$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$4883WIREDR
etc
chaque fichier contient un certain nombre de lignes
ce qui m'intéresse sont les nombres soulignés
si qlq1 peut me guider s'ils vous plait
merci d'avance
je me suis bloquée, d'ou la recherche d'aide, voilà mon problème
j'ai un classeur dans lequel j'ai créer un userform, et un dossier qui contient des fichiers de type .JLT qu'on peut ouvrir avec bloc note,
je veux que lorsque j'écris le nom du fichier dans un textbox, récupérer une colonne du fichier et l'ecrire dans une colonne dans mon classeur( c là ou le vrai travail commence)
le fichier contient des informations comme:
2821 0509$ $ $ $ $ 3456$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$6778WIREDR*
3162 0469$ $ $ $ $ 1120$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$5651WIREDR
3231 0351$ $ $ $ $ 4140$DR24$A330 ,CASE DE TRAIN ,1591,1$CUT$4883WIREDR
etc
chaque fichier contient un certain nombre de lignes
ce qui m'intéresse sont les nombres soulignés
si qlq1 peut me guider s'ils vous plait
merci d'avance
A voir également:
- VBA:importer une colonne depuis un fichier vers une colonne excl
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
4 réponses
bonjour
une fois l'importation dans XL effectuée et si le nombre est toujours après le 5° dollar
Lig = 1
Valeur = Split(Cells(Lig, "A"), "$")(5) * 1
extrait ici le nombre dans la cellule A1
au passage:
un certain nombre de lignes: c'est à dire 10, 500,100000...? :o)
une fois l'importation dans XL effectuée et si le nombre est toujours après le 5° dollar
Lig = 1
Valeur = Split(Cells(Lig, "A"), "$")(5) * 1
extrait ici le nombre dans la cellule A1
au passage:
un certain nombre de lignes: c'est à dire 10, 500,100000...? :o)
Bonjour, merci pour la réponse, voilà ce que j'ai faite
'---------------------------------------------------
'1- CHERCHER LA BOBINE DANS LA BASE DE DONNEES
'---------------------------------------------------
Private Sub CommandButton1_Click()
Dim L As Long, a As Integer, b As Integer, C As Integer
Dim Res As Range, Col As Range
Dim Id As Integer
Dim AdRes As String
Dim wb As Workbook
Id = TextBox1 ' récuperation de l'identifiant
Set wb = Workbooks("BDD.xlsm") ' choisir le classeur
With wb
Set Col = Sheets("test").Columns(1) ' Indique que l'on recherche dans la première colonne
Set Res = Col.Cells.Find(what:=Id, LookAt:=xlWhole) ' On lance la recherche
If Res Is Nothing Then ' Vérification du résultat
MsgBox "Bobine inéxistante!!", vbExclamation, "Message Erreur"
Else
' Récupérer l'adresse de la céllule
AdRes = Res.Address
' Récupération de la ligne sur la variable Ll
L = Sheets("test").Range(AdRes).Row
Sheets("test").Activate
Rows(L).Select
a = Range("C" & L)
b = Range("D" & L)
C = Range("E" & L)
If a <> 0 Then
' affichage des données sur les textbox
TextBox2.Value = a
Else
If b <> 0 Then
TextBox2.Value = b
Else
If C <> 0 Then
TextBox2.Value = C
Else
TextBox2.Value = 0
End If
End If
End If
End If
End With
' ------------------------------------------ Fin recherche dans la BDD -------------------------------
'--------------------------------------------------------------------------------------------
' -------------------------------------Lire fichier JLT et importation dans production----------------
'--------------------------------------------------------------------------------------------
Dim intFic As Integer
Dim comp As Integer
Dim strLigne As String
Dim pro As Workbook
Dim L2 As Long
Set pro = Workbooks("Production.xlsm") ' choisir le classeur
With pro
intFic = FreeFile
comp = 0
Open "c:\test\" & TextBox3.Text For Input As intFic
While Not EOF(intFic)
Line Input #intFic, strLigne
comp = comp + 1
If comp = 1 Then
TextBox4.Text = Replace(Split(strLigne, "$")(5), " ", "")
TextBox5.Text = comp
End If
L2 = Sheets("Production").Range("a65536").End(xlUp).Row + 1
Range("A" & L2 + comp).Value = comp
Range("B" & L2 + comp).Value = Replace(Split(strLigne, "$")(5), " ", "")
Wend
Close intFic
End With
'------------------------------------------- fin de la lecture du fichier-----------------------------------------
mais pour l'importation ça ne marche pas, je sais pas ou est l'erreur
'---------------------------------------------------
'1- CHERCHER LA BOBINE DANS LA BASE DE DONNEES
'---------------------------------------------------
Private Sub CommandButton1_Click()
Dim L As Long, a As Integer, b As Integer, C As Integer
Dim Res As Range, Col As Range
Dim Id As Integer
Dim AdRes As String
Dim wb As Workbook
Id = TextBox1 ' récuperation de l'identifiant
Set wb = Workbooks("BDD.xlsm") ' choisir le classeur
With wb
Set Col = Sheets("test").Columns(1) ' Indique que l'on recherche dans la première colonne
Set Res = Col.Cells.Find(what:=Id, LookAt:=xlWhole) ' On lance la recherche
If Res Is Nothing Then ' Vérification du résultat
MsgBox "Bobine inéxistante!!", vbExclamation, "Message Erreur"
Else
' Récupérer l'adresse de la céllule
AdRes = Res.Address
' Récupération de la ligne sur la variable Ll
L = Sheets("test").Range(AdRes).Row
Sheets("test").Activate
Rows(L).Select
a = Range("C" & L)
b = Range("D" & L)
C = Range("E" & L)
If a <> 0 Then
' affichage des données sur les textbox
TextBox2.Value = a
Else
If b <> 0 Then
TextBox2.Value = b
Else
If C <> 0 Then
TextBox2.Value = C
Else
TextBox2.Value = 0
End If
End If
End If
End If
End With
' ------------------------------------------ Fin recherche dans la BDD -------------------------------
'--------------------------------------------------------------------------------------------
' -------------------------------------Lire fichier JLT et importation dans production----------------
'--------------------------------------------------------------------------------------------
Dim intFic As Integer
Dim comp As Integer
Dim strLigne As String
Dim pro As Workbook
Dim L2 As Long
Set pro = Workbooks("Production.xlsm") ' choisir le classeur
With pro
intFic = FreeFile
comp = 0
Open "c:\test\" & TextBox3.Text For Input As intFic
While Not EOF(intFic)
Line Input #intFic, strLigne
comp = comp + 1
If comp = 1 Then
TextBox4.Text = Replace(Split(strLigne, "$")(5), " ", "")
TextBox5.Text = comp
End If
L2 = Sheets("Production").Range("a65536").End(xlUp).Row + 1
Range("A" & L2 + comp).Value = comp
Range("B" & L2 + comp).Value = Replace(Split(strLigne, "$")(5), " ", "")
Wend
Close intFic
End With
'------------------------------------------- fin de la lecture du fichier-----------------------------------------
mais pour l'importation ça ne marche pas, je sais pas ou est l'erreur