VBA Excel (please help me)

Résolu/Fermé
serial-killer - 23 avril 2009 à 14:57
 serial-killer - 24 avril 2009 à 12:09
Bonjour,

je suis débutant en vba mais j'ai des notions en algorithme je telecharge d'une platefrome des fichier texte et je doit les importer sur excel mais je veu faire un bouton de commande (non pas un macros j'ai essayé mais c'est pas ce que je voulai) afin de rendre cette manipulation plus facile pour un d'autres utilisateurs. alors mon code sera comme suit:

*ouvrir un boite de dialogue "parcourir" pour selectionner un fichier texte(l'utilisateur doit séléctionner le fichier qu'il veut à l'emplacement qu'il veut)
* prédifinir le caractère qui délimite les champs "|" (Alt Gr + 6) (le caractère est toujour le meme dans tous les fichier)
*ouvrir le fichier importer dans un nouveau classeur excel

merci d'avance
A voir également:

7 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 avril 2009 à 15:09
Ca risque d'être un peu problématique, car tu veux faire un bouton de commande sans coder en VBA. Le petit soucis est que ton bouton à de très fortes chances d'être codé en VBA malheureusement pour toi.

Mais ta solution peut s'obtenir sans forcément utiliser un bouton, et vu ce que tu demandes, cela prendra autant de temps de passer par la solution naturelle que de faire un bouton :

1°) Tu ouvres Excel. Tu cliques sur Fichier -> Ouvrir... (ou tu fait Ctrl+O)
2°) Dans la partie type de fichiers, tu cherches "Fichiers texte (*.prn; *.txt; *.csv)"
3°) Tu choisis ton fichier et clique sur Ouvrir
4°) Tu suis les étapes, et quand on te demande le séparateur tu le mets


Voilà ma solution, mais si tu cherches absolument à faire un bouton, je ne suis pas en mesure de t'aider pour le moment.
0
serial-killer
23 avril 2009 à 15:55
merci chossette9 mais je sais cette procédure je veu enfait l'automatisé pour un utilisateur novice en informatique
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 avril 2009 à 16:05
Je te comprends tout à fait, mais mon avis est que ce que je viens de t'expliquer est le chemin le plus facile à faire pour importer un fichier txt sous Excel.

Si tu veux pouvoir laisser ça à un novice de l'informatique, tu devrais plutôt lui laisser ce qu'on appelle un manuel utilisateur pour lui expliquer étape par étape ce qu'il doit faire afin de mener l'opération à bon port.

Mais si tu tiens vraiment à faire une automatisation de ce procédé sans passer par ce que je t'ai indiqué, je veux bien réfléchir à quelque chose. Hélas pour toi ce sera du VBA, toi qui ne voulais pas en faire...
0
Utilisateur anonyme
23 avril 2009 à 19:27
Bonsoir,
une piste intéressante dans l'aide VBA : chercher OpenText, méthode
"Cette méthode ouvre et redistribue un fichier texte sous la forme d'un nouveau classeur ne comportant qu'une seule feuille dans laquelle se trouvent les données du fichier texte distribuées"(aide VBA)

suivent tout les paramètres à utiliser

Reste la boite de dialogue pour choisir le fichier ?

Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
24 avril 2009 à 09:49
Voilà une macro VBA qui pourrait te permettre de faire ce que tu veux :

Sub Macro2()

    Workbooks.OpenText Filename:="F:\fichier.txt", Origin:=xlMSDOS, StartRow _
        :=1, DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter _
        :=True, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
        Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
        TrailingMinusNumbers:=True
End Sub


Par contre je ne me rappelle plus comment on crée un bouton dans Excel, auquel on affecte du code VBA :S
0
serial-killer
24 avril 2009 à 10:45
bonjour,

enfait j'ai trouvé un code qui me permet d'avoir ce que je veux mais il me reste quelque chose d'important que j'arrive pas a trouver c'est la commande qui permet de lui annoncé le caractère qui va délimité les champs sur excel sur mes fichiers texte j'ai le délimiteur "|" (Alt Gr+6)

Private Sub CommandButton2_Click()
NewFN = Application.GetOpenFilename(FileFilter:="Fichiers texte (*.txt), *.txt", Title:="Please select a file")
If NewFN = False Then
' They pressed Cancel
MsgBox "Aucun fichier n'est sélectionné"
Exit Sub
Else
Workbooks.Open FileName:=NewFN
End If
Exit Sub
End Sub

Avant la commande en gras je veux lui dire de délimiter le texte avec le caractère "|" comme j'ai déjà mentionné au début . j'ai trouvé cette commande mais je sais pa la déployer ( Const sDELIM = "|" )
0
serial-killer
24 avril 2009 à 12:09
Private Sub CommandButton1_Click()
newfn = Application.GetOpenFilename(FileFilter:="Fichiers texte (*.txt), *.txt", Title:="Please select a file")
If newfn = False Then
' They pressed Cancel
MsgBox "Aucun fichier n'est sélctionné"
Exit Sub
Else
Workbooks.OpenText Filename:=newfn, Origin:=xlWindows, StartRow:=3, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="|", TrailingMinusNumbers:=True
End If
Exit Sub
End Sub

je l'ai trouvé et je partage le code merci votre aide
0