IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

[VBA] remplir un tableau suivant certaines contraintes


Sujet :

VBA

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    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.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu nous montres ce que tu as commencé à faire ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Voilà je pense que c'est mieux

  4. #4
    Mou
    Mou est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Points : 42
    Points
    42
    Par défaut
    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

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Ok merci moumou.faleh
    Je commence par faire ça et je reposterai si j'ai encore quelques problèmes

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Le truc c'est que je n'arrive pas à crééer la condition si en enregistrant simplement ma macro.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tant que tu ne montres rien, on n'a rien à te dire

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    OK j'ai réussi à bisouiller quelquechose. ça donne ceci (obtenu en enregistrant une macro):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    pense aux balises de code stp (icone # en haut à droite)
    c qd mm bcp plus clair à regarder
    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

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Ok encore une fois merci beaucoup

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour ouvrir un fichier tu dois indiquer le chemin.
    Mais tu peux simplement écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Documents.Open FileName:="D:\MesDoc\Essai récapitulatif a.doc"
    A+

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    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

Discussions similaires

  1. [XL-2007] VBA : remplir un tableau // incomptabilité de type
    Par jnauche dans le forum Excel
    Réponses: 3
    Dernier message: 13/03/2014, 14h19
  2. [XL-2003] VBA-Remplir un tableau a deux dimensions
    Par gualoule dans le forum Excel
    Réponses: 3
    Dernier message: 05/08/2009, 00h49
  3. Remplir un tableau suivant la sélection d'une liste déroulante
    Par Nimothenicefish dans le forum WinDev
    Réponses: 9
    Dernier message: 23/01/2008, 09h37
  4. [vba excel] remplir un tableau
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 28/02/2007, 11h30
  5. [VBA/Excel] Différent suivant certaines cases
    Par Myogtha dans le forum Access
    Réponses: 8
    Dernier message: 01/02/2007, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo