VB et liens fichier externe :'( need HELP Plz

Résolu
Katarinas Messages postés 26 Statut Membre -  
 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.
--

Dans le doute ... Doutes encore!!!
Configuration: Windows XP
Internet Explorer 7.0

10 réponses

  1. Katarinas Messages postés 26 Statut Membre 2
     
    UP...
    0
  2. Katarinas Messages postés 26 Statut Membre 2
     
    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:

    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
    0
  3. Katarinas Messages postés 26 Statut Membre 2
     
    Alors j'ai ameliorer un petit peu tout:

         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?
    0
  4. Katarinas Messages postés 26 Statut Membre 2
     
    Bon j'ai trouver pour le mode recherche et selection:(il me manquait le execute)

    .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


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

    Posez votre question
  6. Utilisateur anonyme
     
    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
    0
  7. Katarinas Messages postés 26 Statut Membre 2
     
    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

    0
  8. Utilisateur anonyme
     
    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
    0
  9. Katarinas Messages postés 26 Statut Membre 2
     
    Voila le code exact :

         '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.

    0
  10. Katarinas Messages postés 26 Statut Membre 2
     
     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++
    0
  11. riskibilou
     
    Bonjour,

    J'ai le même besoin d'importer dans des cellules excel un paragraphe word.
    Or je n'arrive pas à faire fonctionner le programme qui est présenté au cours de ce fil.

    débutant total en vba, serait il possible d'avoir le code complet de cette procédure .

    Merci
    0