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 Word Discussion :

WORD MACRO derniere ligne d'un tableau


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut WORD MACRO derniere ligne d'un tableau
    Bonjour,

    sur un document WORD comment faire pour selectionner le tableau 3 du document et aller a la dernier cellule du tableau pour pouvoir inserer une ligne.

    Merci

    Gillesse60

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Bonjour et bienvenue sur les forums Office de DVP

    Pour sélectionner un tableau, on peut passer par sont index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(3)
    Une solution élégante est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim otbl as Table
     
    Set oTbl = ActiveDocument.Tables(3)
    Pour ajouter une ligne, il n'est pas utile de sélectionner la dernière du tableau.

    Va ajouter une ligne à la fin de ton tableau.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut MACRO WORD
    Bonjour et merci de votre réponse,

    mais j'ai un autre petit problème.
    apres avoir ajouter une ligne au tableau je voudrais remonter a la 1ere colonne au dessus de celle que je vien de créer (MoveUp) et copier la valeur dans une variable, pour pouvoir ajouter + 1 a cette variable. (valeur de la variable 1.0)

    Merci

    Gillesse60

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pourquoi MoveUp ?

    Tu connais le nombre de lignes du tableau.

    A cette valeur, il sufit de retrancher 1 pour avoir l'avant dernière ligne.
    Si c'est pour la première colonne, c'est encore plus facile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVar = oTbl.Cell(1, (otbl.Rows.Count - 1)).Range.Text
    Mais, il y a toujours un mais, il faut filtrer cette donnée.
    Avec une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function NetText(stTemp As String ) As String
    NetText = Left( stTemp, (Len(stTemp) - 2))
    End Function
    Et au final avec l'incrémentation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaVar = CInt(NetText(oTbl.Cell(1, (otbl.Rows.Count - 1)).Range.Text)) + 1

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut MACRO WORD
    merci pour la réponse et la rapiditée

    Mais il y a un problème a l'execution, je vous fournie le code (erreur de compil utilisation incorrect de la propriete)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test1()
        Dim otbl As Table
        Set otbl = ActiveDocument.Tables(3)
        otbl.Rows.Add
        otbl.Rows.Count 
        ver1 = otbl.Cell(1, (otbl.Rows.Count - 1)).Range.Text
        ver1 = CInt(NetText(otbl.Cell(1, (otbl.Rows.Count - 1)).Range.Text)) + 1
        MsgBox ver1
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function NetText(stTemp As String) As String
    NetText = Left(stTemp, (Len(stTemp) - 2))
    End Function
    Pouvez vous me dire la connerie que j'ai fait.

    Merci

    Gillesse60

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut, le
    C'est une info, seul dans une fonction ou une procédure, ça ne donne qu'une erreur, tu viens d'en faire l'expérience !

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut macro word
    Bonjour,

    J'ai fait des tests et dans la variable il me récupére toujours la 2eme cellule de la ligne 1 du tableau. et pourtant le count de ligne a 3

    pouvez vous m'expliquer pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test1()
        Dim otbl As Table
        Set otbl = ActiveDocument.Tables(3)
        otbl.Rows.Add
        ver1 = otbl.Cell(1, (otbl.Rows.Count - 1)).Range.Text
    End Sub
    Merci


    Gillesse60

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut

    J'ai inversé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    otbl.Cell( (otbl.Rows.Count - 1),1).Range.Text

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut macro word
    Merci je récupére bien ce que je veux.

    il y a une autre erreur,la ligne de commande:
    ver1 = CInt(NetText(otbl.Cell((otbl.Rows.Count - 1), 1).Range.Text)) + 1
    ne marche pas, quand je l'execute pas a pas la variable et vide
    il me fait erreur 13 imcompatibilité de type

    Public Function NetText(stTemp As String) As String
    NetText = Left(stTemp, (Len(stTemp) - 2))
    End Function

    Merci

    Gillesse60

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Citation Envoyé par gillesse60 Voir le message
    Merci je récupére bien ce que je veux.

    il y a une autre erreur,la ligne de commande:
    ver1 = CInt(NetText(otbl.Cell((otbl.Rows.Count - 1), 1).Range.Text)) + 1
    ne marche pas, quand je l'execute pas a pas la variable et vide
    il me fait erreur 13 imcompatibilité de type

    Public Function NetText(stTemp As String) As String
    NetText = Left(stTemp, (Len(stTemp) - 2))
    End Function

    Merci

    Gillesse60
    Salut,

    Ta variable ver1, de quel type est-elle ?
    Tu essaie d'entrer une variable dans un espace qui ne lui convient pas.
    C'est comme mettre un doberman dans une cage à souris.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut macro word
    je ne sais pas de quelle type.

    dans la variable je récupere un numéro de version (1.0)

    et je veux ajouter 0.1 de plus a chaque fois

    si je récupére 1.2 il faut que quand j'ajoute + 1 ou + 0.1pour avoir 1.3

    Gillesse60

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est pas CInt qu'il faut utiliser, mais un CBbl. Tu as besoin d'un Double et pas d'un Integer.

    C'est pour cette raison que ça te donne une erreur.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/06/2015, 15h38
  2. [XL-2007] trouver le numéro de la derniere ligne d'un tableau
    Par problemeaide dans le forum Excel
    Réponses: 1
    Dernier message: 21/09/2012, 15h49
  3. Word insérer une ligne dans un tableau
    Par offspring dans le forum VSTO
    Réponses: 0
    Dernier message: 12/10/2011, 11h33
  4. [VBA-E] trouver la derniere ligne de mon tableau
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/03/2007, 22h41
  5. [Word] Suppression des lignes d'un tableau
    Par sat478 dans le forum VBA Word
    Réponses: 2
    Dernier message: 06/09/2006, 14h22

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