importer des données

Y

Yannick01

Guest
Voilà rapidemment ce que j'aimerais faire:
importer des données d'un fichier A (format très proche du txt) dans un fichier excel B sans ouvrir le A, en passant simplement par une "questio-condition" (genre nom du fichier à importer: xxxx.xxx et tout les valeurs sont placés dans des cellules plus bas après validation).
Voilà en gros, ce fichier est destinée à des personnes qui ne connaissent pas grand chose d'un ordinateur, c pour cela que j'essaye de faire quelquechose de simple, sans aucune manip à faire sauf de remplir des cases pour obtenir le resultat.
http://membres.lycos.fr/yannoch01/projet.zip voilà le fichier A et B, le fichier 0304.pts contient les valeurs recherché, les données seront toujours dans un .pts mais le nom change tout le temps, et j'aimerais donc ici, que les valeurs de ce fichier soit reporté dans les colonnes E & F à partir de la ligne 72 grâce à une manip dans le genre expliqué ci-dessus.
Voilà, je sais faire quelque truc sur excel mais là, je n'ai plus assez de compétences.
Donc je demande de l'aide ici, car après plusieurs recherche et quelque piste, je n'ai rien trouvé d'exploitable.
Merci d'avance à qui m'aidera.
@+
 
S

STéphane

Guest
il ya plusieurs solutions.


en voilà-une

Set actWB = ActiveWorkbook.ActiveSheet
ChDir "C:\WINNT\Profiles\royers\Bureau\Projet"

filetoOpen = Application.GetOpenFilename("Fichiers Points (*.pts),*.pts,Fichiers au format prn (*.pts),*.pts")
If filetoOpen <> False Then

Workbooks.OpenText FileName:= _
filetoOpen, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1))
Set SrcWB = ActiveWorkbook
Range("A1").CurrentRegion.Copy actWB.Range("E72")
SrcWB.Close savechanges:=False


par contre il faut que tu dégôtes une macro pour remplacer les ".", car ces valeurs seront alors considérées comme du texte et non come valeurs décimales (si sur tes pc, la virgule est définie comme séparatuer décimal)

bye
stpehane
 
T

Ti

Guest
place ce code dans un module de ton fichier, associe un bouton à la procédure Importation_Fichier_Text et ça devrait marcher

Private Sub Lit_Fichier_Text(NomFichier)
Dim Nombre1, Nombre2
Dim Ligne As Long
Dim MyWkbk As Workbook, MyRange As Range
Dim NumFich As Integer
On Error Resume Next
Set MyWkbk = Application.ActiveWorkbook
Set MyRange = Range("E72")
NumFich = FreeFile
Open NomFichier For Input As FreeFile
Ligne = 0
Do While Not EOF(NumFich)
Nombre2 = False
Input #NumFich, Nombre1, Nombre2
With MyWkbk
'test pour prévenir les erreurs : si faux, on est à la fin du fichier
If Nombre2 <> False Then
MyRange.Offset(Ligne, 0).Value = Nombre1
MyRange.Offset(Ligne, 1).Value = Nombre2
End If
End With
Ligne = Ligne + 1
Loop
Close NumFich

End Sub

Sub Importation_Fichier_Text()
Dim Fichier_Text

Fichier_Text = Application.GetOpenFilename("Fichiers texte (*.pts),*.pts")
If Fichier_Text <> False Then
Lit_Fichier_Text (Fichier_Text)
End If
End Sub
 

Discussions similaires

Réponses
4
Affichages
319

Statistiques des forums

Discussions
312 100
Messages
2 085 293
Membres
102 853
dernier inscrit
jetstream69