Pensez vous que cela soit possible ? Si oui comment faire ?

jejep79 Messages postés 19 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 14 octobre 2005 - 14 sept. 2005 à 17:32
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 16 sept. 2005 à 13:02
Bonjour, a tous et à toutes !

Voila une petite question concernant un petit projet que j'aimerais mettre en place.

Voici ce que je souhaiterais faire :



Etape 1:

Via un userform, j'aimerais que l'utilisateur puisse selectionner plusieurs fichiers (fichiers word)

Etape 2:

Une fois ces fichiers word selectionnés, et confirmé par l'utilisateur.

j'aimerais créer un nouveau document (en l'occurence word) dans lequel
va s'inscrire le texte contenu dans la 2eme cellule de chaque documents
word selectioné.



Voila pensez vous que ceci soit realisable et si oui comment ?

Merci d'avance

8 réponses

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
14 sept. 2005 à 17:48
oui,
tu ouvres ton fichier word,
par exemple dans un textbox pour que l'utilisateur voie le fichier avec ceci par ex:
Private Sub mnuOu_Click()
GoTo ouvrir
ouvrir:
Dim MyFileName As String, Ext As String

cdlFiles.Filter = "(*.txt)|*.txt|(*.doc)|*.doc "
cdlFiles.DefaultExt = "doc"
cdlFiles.Flags = cdlOFNFileMustExist + cdlOFNPathMustExist

On Error GoTo No_Open

cdlFiles.ShowOpen
MyFileName = cdlFiles.FileName
Open MyFileName For Input As #1
txtsource.Text = Input(LOF(1), 1)
Close #1
Exit Sub

No_Open:
MsgBox "Le fichier ne peut être ouvert"
Resume exitline
exitline:
Exit Sub

End Sub

tu split le texte avec " " comme séparateur, puis tu demandes la deuxième cellule du split et tu la copies dans un autre fichier.

désolé pour la mise en page, c'est par mac que je réponds
0
jejep79 Messages postés 19 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 14 octobre 2005
14 sept. 2005 à 18:22
Ah c'est vrai que le code est pas facile a exploiter je sais pas trop
comment remettre ça, mais vais essayer, par contre je vois que tu fais
cela avec un fichier.



Mais je voulais savoir si c'était pas possiblede faire ça en selectionnant plusieurs fichier en une fois.

En gros, je selectionne le fichier 1, 2 et 3 puis je clique sur un
bouton ok et hop tout se fait en toile de fond. Et le fichier
nouvellement crée apparait.



Voila
0
jejep79 Messages postés 19 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 14 octobre 2005
14 sept. 2005 à 22:56
ben zut j'arrive pas à reprendre ton code... désolé suis un boulet !!
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
15 sept. 2005 à 10:08
Désolé pour le code, le revoici:
'tu crées une sub dasn le menu de ton appli
Private Sub mnuOu_Click()
GoTo ouvrir
ouvrir:
Dim MyFileName As String, Ext As String
cdlFiles.Filter = "(*.txt)|*.txt|(*.doc)|*.doc "
cdlFiles.DefaultExt = "doc"
cdlFiles.Flags = cdlOFNFileMustExist + cdlOFNPathMustExist


On Error GoTo No_Open


cdlFiles.ShowOpen
MyFileName = cdlFiles.FileName
Open MyFileName For Input As #1
txtsource.Text = Input(LOF(1), 1)
Close #1
Exit Sub


No_Open:
MsgBox "Le fichier ne peut être ouvert"
Resume exitline
exitline:
Exit Sub


End Sub

Bon ceci dit, tu n'es pas obligé du tout de faire ça.
Si tu connais le nom des fichiers par avance, tu ouvres tes fichiers l'un à la suite, tu remplaces txtsource.Text par le nom d'une variable que tu splittes:
open monfichier1 for input as #1
open monfichier2 for input as #2
open monfichier3 for input as #3
chaine1=input(LOF(1),1)
etc
cible()=Spli(chaine," ")
tu ouvres un fichier d'output:
open output.doc for output as #4
tu écris dedans la deuxième cellule, qui est indiquée 1 car les tableaux commencent à 0 si je ne me trompe:
print #1, cible(1)
et tu recommences avec les autres fichiers.
close #1 etc
C'est le principe général, mais si tu veux que l'utilisateur choisisse plusieurs fichiers d'un coup et ensuite fasse l'analyse, il faut modifier le code du début.
0

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

Posez votre question
jejep79 Messages postés 19 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 14 octobre 2005
15 sept. 2005 à 13:13
C'est le principe général, mais si tu veux que l'utilisateur choisisse
plusieurs fichiers d'un coup et ensuite fasse l'analyse, il faut
modifier le code du début.



oui effectivement c'est cela que je souhaite faire.

Et je me demande si c'est pas possible de faire ça via une listbox qui
listerait tout les fichiers d'un dossier ? L'utilisateur
selectionnerait plusieurs fichiers via cette listbox et hop on lance la
procedure.

ça doit etre faisable non ?
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
15 sept. 2005 à 17:14
sans doute mais la propriété multiselect de listbox ne semble pas marcher avec le code que je t'ai donné.
0
jejep79 Messages postés 19 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 14 octobre 2005
16 sept. 2005 à 12:29
oui tout a fait
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
16 sept. 2005 à 13:02
voici ce que j'ai trouvé comme doc, tiens-moi au courant, je devrai faire ce genre de chose très bientôt:


Let_s see an example of a multiselect list box at work. In this case, we_ll have two listboxes, List1 and List2, as well as a command button displaying an arrow (here, we_ll just give a button the caption __>_ to display the arrow). Set List1_s MultiSelect property to 1. When the user selects a number of items in List1 and clicks the button with an arrow, we_ll copy the selected items in List1 to List2


We start by loading items into List1 when the form loads:




Private Sub Form_Load ()


List1.AddItem ("Item 0")


List1.AddItem ("Item 1")


List1.AddItem ("Item 2")


List1.AddItem ("Item 3")


List1.AddItem ("Item 4")


List1.AddItem ("Item 5")


List1.AddItem ("Item 6")


List1.AddItem ("Item 7")


End Sub


Next, when the user clicks the command button to indicate he has made all the selections he wants, we loop over the list this way:


Private Sub Command1_Click ()


Dim intLoopIndex


For intLoopIndex = 0 To List1.ListCount - 1


...


Next intLoopIndex


End Sub


In the loop, we see which items were selected and move them to the other list box,


List2 :


Private Sub Command1_Click ()


Dim intLoopIndex


For intLoopIndex = 0 To List1.ListCount - 1


If List1.Selected(intLoopIndex) Then


List2.AddItem List1.List(intLoopIndex)


End If


Next intLoopIndex


End Sub


The result appears in Figure 8.4, where we_re letting the user make multiple selections using the mouse, Shift, and Ctrl keys.


Note that we looped over every item in the list box to see if it was selected or not_is this necessary? Aren_t there SelStart and SelLength properties for the list box as there are for text boxes? Those properties don_t exist for list boxes, because the


selected items in a multiselect list box may not be contiguous, which also means that we do indeed have to loop over all items in the list box, checking each one individually to see if it_s been selected
0
Rejoignez-nous