Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 16/04/2007, 11h00   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Par défaut [VBA] remplir un tableau suivant certaines contraintes

Bonjour.

J'ai besoin d'une macro qui, d'un tableau contenu dans un document Word, ne me renvoie que les lignes dont un des champs respecte un critère et ce dans un autre document Word.
Pour être plus clair:
J'ai un tableau de trois colonnes : A, B, et C.
La colonne B ne contient qu'une seule lettre : D, F, S ou R.
La macro ne doit retourner que les lignes dont la lettre est D (dans la colonne B) dans un fichier .doc dans lequel j'ai créé des pieds de page et des entêtes.

Je débute totalement en VBA, je commence à lire les tutoriels de ce site (plus de 40...).
Je sais que l'algorithme est de la forme

n <- longueur du tableau
pour i de 1 à n,
faire si tableau(ligne i, colonne 2) = D,
alors copier tableau(ligne i)
coller (dans le tableau de l'autre fichier)
fin de si

Je vous remercie d'avance pour votre aide.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 12h56   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu nous montres ce que tu as commencé à faire ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 10h35   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Voilà je pense que c'est mieux
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 10h37   #4
Mou
Futur Membre du Club
 
Inscription : mars 2007
Messages : 69
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2007
Messages : 69
Points : 19
Points : 19
Tu devrais faire comme tout les debutants de VB et comme on a tous fait... Enegistre ta macro et regarde ce que ca te donne... c est le meilleur moyen d apprendre
Mou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 11h07   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ok merci moumou.faleh
Je commence par faire ça et je reposterai si j'ai encore quelques problèmes
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 14h25   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Le truc c'est que je n'arrive pas à crééer la condition si en enregistrant simplement ma macro.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 14h32   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tant que tu ne montres rien, on n'a rien à te dire
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 17h14   #8
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
OK j'ai réussi à bisouiller quelquechose. ça donne ceci (obtenu en enregistrant une macro):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub recapitulatif()
Dim objTable As Table
Dim i As Integer
Dim a As String
Set objTable = ThisDocument.Tables(1)
 
For i = 1 To objTable.Rows.Count
    a = Left(objTable.Cell(i, 2).Range.Text, InStr(objTable.Cell(i, 2).Range.Text, vbCr) - 1)
    If a = "D" Then
        objTable.Rows(i).Select
        Selection.Copy
  Documents.Open FileName:="""Essai récapitulatif a.doc""", _
    ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
    PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
    WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
    wdOpenFormatAuto, XMLTransform:="", DocumentDirection:=wdLeftToRight
  Selection.PasteAndFormat (wdPasteDefault)
    End If
Next i
End Sub
N'y a-t-il pas de possibilité de la simplifier?
A quoi sert tout ce paragraphe entre Selection.Copy et End If?
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 17h24   #9
Membre habitué
 
Inscription : juillet 2005
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 141
Points : 117
Points : 117
pense aux balises de code stp (icone # en haut à droite)
c qd mm bcp plus clair à regarder
Citation:
A quoi sert tout ce paragraphe entre Selection.Copy et End If?
ce sont toutes les options pour l'ouverture du fichier
tu peux ne pas en écrire plein et leur valeur seront prise par défaut par word
pour savoir lesquelles pense à
rémi
gruget est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 18h09   #10
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ok encore une fois merci beaucoup
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 18h21   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Pour ouvrir un fichier tu dois indiquer le chemin.
Mais tu peux simplement écrire
Code :
Documents.Open FileName:="D:\MesDoc\Essai récapitulatif a.doc"
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 10h30   #12
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Salut
Je voulais savoir comment je peux rajouter dans le deuxième document le nom du document dont sont issus les lignes. Si ce nom pouvait être inséré dans une ligne du tableau, ça m'arrangerait.
Merci
perophron 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 02h45.


 
 
 
 
Partenaires

Hébergement Web