VB et liens fichier externe :'( need HELP Plz
Résolu
Katarinas
Messages postés
26
Statut
Membre
-
riskibilou -
riskibilou -
Bonjour,
Encore moi, encore le meme programme, encore des problemes LoL.
Je tente d'expliquer au mieu se qui me tracasse:
Dans un fichier excel:
A1 = nom d'un client qui change en fonction d'un choix dans une box deroulante.
A2= condition paiement client
A3= Conditionnement du produit
A4= ...
Chaque client a un dossier sur le serveur
Dans chaque dossier, un document word, qui recapitule les données A1, A2, A3 ...
Le dossier se decompose en plusieurs paragraphes:
- paragraphe1 = donnees a mettre en A2
- paragraphe 2= données a mettre en A3
- ...
Je voudrait savoir comment créer un lien entre excel et le fichier ou se trouve les client.
cad:
choix dans la box = tous les dossier present dans le dossier CLIENTS
//serv/CLIENTS/clientA
que je puisse choisir le nom du fichier via ma box
Ceci est il possible?
De plus une fois le client choisis dans ma box je voudrait que en cellule A2 s'ecrive le premier paragraphe du document correspondant au dossier client choisi et etc avec les differents paragraphe.
J'espere avoir été le plus claire possible.
Merci d'avance pour votre aide.
Encore moi, encore le meme programme, encore des problemes LoL.
Je tente d'expliquer au mieu se qui me tracasse:
Dans un fichier excel:
A1 = nom d'un client qui change en fonction d'un choix dans une box deroulante.
A2= condition paiement client
A3= Conditionnement du produit
A4= ...
Chaque client a un dossier sur le serveur
Dans chaque dossier, un document word, qui recapitule les données A1, A2, A3 ...
Le dossier se decompose en plusieurs paragraphes:
- paragraphe1 = donnees a mettre en A2
- paragraphe 2= données a mettre en A3
- ...
Je voudrait savoir comment créer un lien entre excel et le fichier ou se trouve les client.
cad:
choix dans la box = tous les dossier present dans le dossier CLIENTS
//serv/CLIENTS/clientA
que je puisse choisir le nom du fichier via ma box
Ceci est il possible?
De plus une fois le client choisis dans ma box je voudrait que en cellule A2 s'ecrive le premier paragraphe du document correspondant au dossier client choisi et etc avec les differents paragraphe.
J'espere avoir été le plus claire possible.
Merci d'avance pour votre aide.
A voir également:
- VB et liens fichier externe :'( need HELP Plz
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
10 réponses
Bon je vien deja d'en trouver une partie:
Je sais dorenavant comment ouvrir le fichier word copier le paragraphe et le coller dans Excel.
Ca donne quelque chose comme ca:
J'ai toujours besoin d'aide pour le debut de ma requete SVP
Je sais dorenavant comment ouvrir le fichier word copier le paragraphe et le coller dans Excel.
Ca donne quelque chose comme ca:
Sub DonnéesWordVersExcel()
Dim DocWord As Word.Document
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word (Fichier.doc) et effectue une copie des données
Set DocWord = AppWord.Documents.Open("I:\Clients\...\...\FICHE CLIENT.doc", ReadOnly:=True)
With AppWord
.Selection.MoveDown Unit:=wdLine, Count:=20
, Extend:=wdExtend
.Selection.Copy
End With
' Copie des données dans Excel
ThisWorkbook.Worksheets("Feuil1").Paste
' Fermeture de Word
AppWord.Application.Quit
Application.CutCopyMode = False
End Sub
J'ai toujours besoin d'aide pour le debut de ma requete SVP
Alors j'ai ameliorer un petit peu tout:
Mon probleme est dans la recherche de la partie a copier sous word. La fonction recherche ne veu pas fonctionner comme sous excel...
De plus, la selection et le copiage bug dans 100% des cas.
Quelqu'un peu m'aider SVP?
Dim DocWord As Word.Document
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.ShowMe
AppWord.Visible = True
Dim Name As String
NumeroLigneClient = ComboBox1.ListIndex
Name = Sheets("Liste des clients").Cells(NumeroLigneClient + 2, 6)
'Ouvre le document Word Cherche le paragraphe "Crotte de Bic" et le copie.
If Dir(Name, vbNormal) <> "" Then
Set DocWord = AppWord.Documents.Open(Name, ReadOnly:=True)
With AppWord
.Selection.Find.Text = "Crotte de Bic"
.Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
.Selection.Copy
End With
' Copie des données dans Excel
Cells.Find(What:="Quoi:", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Select.SpeialPaste
Else
MsgBox ("Pas de fiche Client")
End If
' Fermeture de Word
AppWord.Application.Quit
Application.CutCopyMode = False
Mon probleme est dans la recherche de la partie a copier sous word. La fonction recherche ne veu pas fonctionner comme sous excel...
De plus, la selection et le copiage bug dans 100% des cas.
Quelqu'un peu m'aider SVP?
Bon j'ai trouver pour le mode recherche et selection:(il me manquait le execute)
Mon souci est dans le collage vu qu'il y a plusieurs lignes, le collage ne veux pas s'effectuer et mes lignes sont en erreurs:
.Selection.Find.Text = "X"
.Selection.Find.Execute
Mon souci est dans le collage vu qu'il y a plusieurs lignes, le collage ne veux pas s'effectuer et mes lignes sont en erreurs:
ActiveCell.Offset(0, 3).Value = Selection.Paste
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
La ligne :
ActiveCell.Offset(0, 3).Value = Selection.Paste
devrait plutôt ressembler à quelque chose comme :
ActiveCell.Offset(0, 3).Select
ActiveSheet.Paste
ActiveCell.Offset(0,-3).Select
Application.CutCopyMode = False
Lupin
La ligne :
ActiveCell.Offset(0, 3).Value = Selection.Paste
devrait plutôt ressembler à quelque chose comme :
ActiveCell.Offset(0, 3).Select
ActiveSheet.Paste
ActiveCell.Offset(0,-3).Select
Application.CutCopyMode = False
Lupin
Tout d'abors merci d'avoir repondu,
Ensuite mon pb c'est que le texte provien de Word. Du coup meme avec ton code il est collé comme s'il y avait un fichier word par dessus la cellule.
Je souhaiterai qu'il se colle dans la cellule.
Ps: meme le ".Pastespecial" ne marche pas
Ensuite mon pb c'est que le texte provien de Word. Du coup meme avec ton code il est collé comme s'il y avait un fichier word par dessus la cellule.
Je souhaiterai qu'il se colle dans la cellule.
Ps: meme le ".Pastespecial" ne marche pas
re :
il faut ramener Excel en avant plan !
With AppWord
.Selection.Find.Text = "Blanc"
.Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
.Selection.Copy
End With
' Ici le programme pointe toujours sur le doc wd, alors utilise l'instruction suivante :
Workbooks("MonFichier.xls").Activate
Lupin
il faut ramener Excel en avant plan !
With AppWord
.Selection.Find.Text = "Blanc"
.Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
.Selection.Copy
End With
' Ici le programme pointe toujours sur le doc wd, alors utilise l'instruction suivante :
Workbooks("MonFichier.xls").Activate
Lupin
Voila le code exact :
Dans le fait, le fichier word s'ouvre bien.
Il selectionne les bonnes lignes.
Puis il les copies.
Ensuite il reviens sous excel
trouve le mot et se deplace.
Mais il ne colle pas a l'interieur de la cellule.
'Ouvre le document Word Cherche le paragraphe "A" et le copie.
If Dir(Name, vbNormal) <> "" Then
Set DocWord = AppWord.Documents.Open(Name, ReadOnly:=True)
With AppWord
.Selection.Find.Text = "A"
.Selection.Find.Execute
.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Selection.MoveDown Unit:=wdLine, Count:=2
.Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
.Selection.Copy
End With
' Copie des données dans Excel
Cells.Find(What:="Lettre:", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Select
Selection.PasteSpecial Transpose:=True
Dans le fait, le fichier word s'ouvre bien.
Il selectionne les bonnes lignes.
Puis il les copies.
Ensuite il reviens sous excel
trouve le mot et se deplace.
Mais il ne colle pas a l'interieur de la cellule.
Cells.Find(What:="Lettre:" After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Select
ActiveSheet.PasteSpecial Format:="Texte"
TROUVER !!!!!! c'etait le format texte qui manquait :s :wink:
Merci à toi Lupin d'avoir essayer
A++