Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 13h47   #1
Invité de passage
 
Inscription : octobre 2008
Messages : 26
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 26
Points : 1
Points : 1
Par défaut Recherche dans tableau word

Bonjour

A partir de mon fichier excel, j'aimerais rechercher dans la première colonne de mon tableau dans word la valeur 100.
Par la suite j'aimerais écrire dans la 8ème cellule de cette ligne qu'il aura trouvé, toujours dans mon tableau word.


Est-ce faisable ?
Raikko68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h11   #2
Membre du Club
 
Homme hadrien
Apprenti Ingénieur
Inscription : mars 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme hadrien
Localisation : France

Informations professionnelles :
Activité : Apprenti Ingénieur
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : mars 2011
Messages : 86
Points : 56
Points : 56
Salut, bien sûr que c'est faisable !

Si tu connais ton nombre total de ligne : Nligne

Code :
1
2
3
4
5
6
7
8
9
10
Dim Nligne,Ntableau, I as integer
dim valeur as string
 
valeur = "La valeur à inserer"
 
For I=1 to Nligne
       If Document.tables(Ntableau).cells(I,1).range.text = 100 then
       Document.tables(Ntableau).cells(I,8).range.text = valeur 
       endif
next I
FtF Nemesis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 18h20   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 323
Points : 29 227
Points : 29 227
Salut,

Sous cette forme, le code ne va pas fonctionner.

Lorsque l'on récupère le texte d'une cellule, il contient deux caractères supplémentaires qu'il faut éliminer pour faire la comparaison.

La méthode la plus rapide est l'utilisation de la fonction Find de Word, on sélectionne le tableau et on lance la recherche dans la sélection.

On récupère la position de la sélection http://word.developpez.com/faq/?page...index_cellules

Code :
1
2
3
4
5
6
7
8
9
Sub trouverDansTable()
ActiveDocument.Tables(1).Select
With Selection.Find
    .Text = "M"
    .Forward = True
    .Execute
End With
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/05/2011, 12h01   #4
Membre du Club
 
Homme hadrien
Apprenti Ingénieur
Inscription : mars 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme hadrien
Localisation : France

Informations professionnelles :
Activité : Apprenti Ingénieur
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : mars 2011
Messages : 86
Points : 56
Points : 56
ah ok, je prend note de ta procédure

Et sinon ces deux caractères ils sont placés où par rapport à la valeur visible ?
FtF Nemesis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h57   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 323
Points : 29 227
Points : 29 227
Salut,

ces deux caratères se trouvent à la fin de la chaîne.

Une petite fonction de nettoyage les élimine.

http://heureuxoli.developpez.com/off...e=page6#L6-A-3
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h23   #6
Invité de passage
 
Inscription : octobre 2008
Messages : 26
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 26
Points : 1
Points : 1
Bonjour à tous les deux :

J'ai essayé à plusiseurs reprise de compiler vos 2 codes mais je n'y arrive pas.

J'en suis resté là :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Private Sub CommandButton2_Click()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim intI As Integer
Dim I As Integer
Dim valeur As String
 
valeur = "La valeur à inserer"
 
 
Set WordApp = GetObject(, "word.Application") 'ouvre session word
    WordApp.Visible = True   'affichier le document Word
 
Set WordDoc = WordApp.Documents("C:\Documents and Settings\429527\Desktop\Pin item\Mondocument.doc") 'ouvre document Word
 
intI = WordDoc.Tables(1).Rows.count
 
 
 
 
 
 
For testI = 1 To intI
       If WordDoc.Tables(1).Rows(testI).Cells(1).Range.Text = 100 Then
       WordDoc.Tables(1).Rows(testI).Cells(8).Range.Text = valeur
       End If
Next testI
 
 
End Sub
J'ai placer le code de Heureux-oli dans mon document word et effectivement il me trouve mon chiffre 100 :
Code :
1
2
3
4
5
6
7
8
9
10
 
Sub trouverDansTable()
ActiveDocument.Tables(1).Select
With Selection.Find
    .Text = "100"
    .Forward = True
    .Execute
End With
 
End Sub
Mais après je sais pas comment faire pour écrire dans la 8ème colonne de ce qu'il a trouvé et cela à partir de mon fichier excel.

Merci pour votre aide
Raikko68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 13h33   #7
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 323
Points : 29 227
Points : 29 227
Salut,

Le deux codes ont un mode de fonctionnement différent, faire un assemblage ne sera pas facile.

Je donne une entrée de la FAQ qui permet de retrouver la position de la sélection dans un tableau.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h39.


 
 
 
 
Partenaires

Hébergement Web