VBA problème suppression dernière colonne d'un tableau d'un doc word
12 réponses
ierrot33
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
| Ma macro ajoute une ligne à chacun de mes tableaux | à chaque fois que j'ajoute un doc, à la fin, j'ai donc une | ligne en trop vide dans chacun de mes tableaux.
Avant de supprimer la dernière ligne du tableau, es-tu certain que les tableaux 1 et 3 ont seulement une ligne vide?
| Ma macro ajoute une ligne à chacun de mes tableaux
| à chaque fois que j'ajoute un doc, à la fin, j'ai donc une
| ligne en trop vide dans chacun de mes tableaux.
Avant de supprimer la dernière ligne du tableau, es-tu
certain que les tableaux 1 et 3 ont seulement une ligne
vide?
| Ma macro ajoute une ligne à chacun de mes tableaux | à chaque fois que j'ajoute un doc, à la fin, j'ai donc une | ligne en trop vide dans chacun de mes tableaux.
Avant de supprimer la dernière ligne du tableau, es-tu certain que les tableaux 1 et 3 ont seulement une ligne vide?
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Merci MichD pour ton aide. Oui j'ai vérifié sur mes 4 tableaux, ils ont tous une ligne vide à la fin. Ça marche pour certains tableaux mais pas tous. D'ailleurs la commande suivante efface la dernière ligne du tableau qu'elle soit vide ou non. oTbl.Rows(oTbl.Rows.Count).Delete
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
Merci MichD pour ton aide.
Oui j'ai vérifié sur mes 4 tableaux, ils ont tous une ligne vide à la fin. Ça marche pour certains tableaux mais pas tous.
D'ailleurs la commande suivante efface la dernière ligne du tableau qu'elle soit vide ou non.
oTbl.Rows(oTbl.Rows.Count).Delete
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Merci MichD pour ton aide. Oui j'ai vérifié sur mes 4 tableaux, ils ont tous une ligne vide à la fin. Ça marche pour certains tableaux mais pas tous. D'ailleurs la commande suivante efface la dernière ligne du tableau qu'elle soit vide ou non. oTbl.Rows(oTbl.Rows.Count).Delete
pierrot33
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD, je viens de trouver la source du problème... Dans mes tableaux, certains avaient une première ligne composée de deux lignes fusionnées, ce qui faisait planter la commande de suppression de la dernière ligne. Je ne sais pas vraiment pourquoi. La commande oTbl.Rows(oTbl.Rows.Count).Delete ne marche pas avec des lignes fusionnées dans un tableau d'un doc word! En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau. Si quelqu'un a des explications je suis preneur.
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
MichD, je viens de trouver la source du problème...
Dans mes tableaux, certains avaient une première ligne composée de deux lignes fusionnées, ce qui faisait planter la commande de suppression de la dernière ligne.
Je ne sais pas vraiment pourquoi. La commande oTbl.Rows(oTbl.Rows.Count).Delete ne marche pas avec des lignes fusionnées dans un tableau d'un doc word!
En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau.
Si quelqu'un a des explications je suis preneur.
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD, je viens de trouver la source du problème... Dans mes tableaux, certains avaient une première ligne composée de deux lignes fusionnées, ce qui faisait planter la commande de suppression de la dernière ligne. Je ne sais pas vraiment pourquoi. La commande oTbl.Rows(oTbl.Rows.Count).Delete ne marche pas avec des lignes fusionnées dans un tableau d'un doc word! En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau. Si quelqu'un a des explications je suis preneur.
Jacquouille
Bonjour
En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau.
Juste une question: Si ton tableau est défini avec 10 lignes (ex: A1:C10) et qu'il n'y a que 9 remplies, ta formule renvoie combien? 9 ou 10? Merci
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD, je viens de trouver la source du problème... Dans mes tableaux, certains avaient une première ligne composée de deux lignes fusionnées, ce qui faisait planter la commande de suppression de la dernière ligne. Je ne sais pas vraiment pourquoi. La commande oTbl.Rows(oTbl.Rows.Count).Delete ne marche pas avec des lignes fusionnées dans un tableau d'un doc word! En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau. Si quelqu'un a des explications je suis preneur.
Bonjour
En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du
tableau.
Juste une question: Si ton tableau est défini avec 10 lignes (ex: A1:C10) et
qu'il n'y a que 9 remplies, ta formule renvoie combien? 9 ou 10?
Merci
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"pierrot33" a écrit dans le message de groupe de discussion :
TIydnZ8weOMNWIjPRVn_vwA@giganews.com...
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
MichD, je viens de trouver la source du problème...
Dans mes tableaux, certains avaient une première ligne composée de deux
lignes
fusionnées, ce qui faisait planter la commande de suppression de la dernière
ligne.
Je ne sais pas vraiment pourquoi. La commande
oTbl.Rows(oTbl.Rows.Count).Delete
ne marche pas avec des lignes fusionnées dans un tableau d'un doc word!
En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau.
Si quelqu'un a des explications je suis preneur.
En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau.
Juste une question: Si ton tableau est défini avec 10 lignes (ex: A1:C10) et qu'il n'y a que 9 remplies, ta formule renvoie combien? 9 ou 10? Merci
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD, je viens de trouver la source du problème... Dans mes tableaux, certains avaient une première ligne composée de deux lignes fusionnées, ce qui faisait planter la commande de suppression de la dernière ligne. Je ne sais pas vraiment pourquoi. La commande oTbl.Rows(oTbl.Rows.Count).Delete ne marche pas avec des lignes fusionnées dans un tableau d'un doc word! En revanche oTbl.Rows.Count renvoie bien le bon nombre de lignes du tableau. Si quelqu'un a des explications je suis preneur.
pierrot33
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre exemple.
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre exemple.
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre exemple.
Jacquouille
Merci pour cette réponse qui me parait évidente, puisque le tableau devrait être défini, donc, AMHA, cette formule devrait toujours retourner le nombre de lignes définies au préalable, remplies ou non.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre exemple.
Merci pour cette réponse qui me parait évidente, puisque le tableau devrait
être défini, donc, AMHA, cette formule devrait toujours retourner le nombre
de lignes définies au préalable, remplies ou non.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"pierrot33" a écrit dans le message de groupe de discussion :
Z82dnSKVtIVxmIvPRVn_vwA@giganews.com...
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre
exemple.
Merci pour cette réponse qui me parait évidente, puisque le tableau devrait être défini, donc, AMHA, cette formule devrait toujours retourner le nombre de lignes définies au préalable, remplies ou non.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
Bonjour Jacquouille,
La formule renvoie bien le nombre total de lignes soit 10 pour votre exemple.
MichD
J'ai ouvert un tout nouveau fichier Word (Office 2010) J'ai inséré un tableau (table) X lignes par Y colonnes
"Fusionnées une ligne" : C'est à dire fusionner chacune des colonnes de cette ligne ou fusionner 2 lignes entières...
J'ai fusionné certaines LIGNES de ce tableau et j'ai exécuté cette macro pas à pas. J'ai pu supprimer toutes les lignes une à une à partir de la dernière ligne du tableau.
Pour ce faire utilise la touche F8
J'ai placé directement cette macro dans un module de Word '--------------------------------------- Sub test() Dim T As Table, NbRows As Long, A As Long Set T = ThisDocument.Tables(1) NbRows = T.Rows.Count
For A = NbRows To 1 Step -1 T.Rows(A).Delete Next End Sub '---------------------------------------
Si tu as fusionné par exemple 2 cellules adjacentes d'une colonne d'un tableau de 2 lignes différentes, il est normal que tu ne puisses pas supprimer une ligne à la fois pour ces 2 lignes, car il y a une liaison qui ne peut pas être brisée.
J'ai ouvert un tout nouveau fichier Word (Office 2010)
J'ai inséré un tableau (table) X lignes par Y colonnes
"Fusionnées une ligne" : C'est à dire fusionner chacune des
colonnes de cette ligne ou fusionner
2 lignes entières...
J'ai fusionné certaines LIGNES de ce tableau et j'ai exécuté
cette macro pas à pas. J'ai pu supprimer toutes les lignes
une à une à partir de la dernière ligne du tableau.
Pour ce faire utilise la touche F8
J'ai placé directement cette macro dans un module de Word
'---------------------------------------
Sub test()
Dim T As Table, NbRows As Long, A As Long
Set T = ThisDocument.Tables(1)
NbRows = T.Rows.Count
For A = NbRows To 1 Step -1
T.Rows(A).Delete
Next
End Sub
'---------------------------------------
Si tu as fusionné par exemple 2 cellules adjacentes
d'une colonne d'un tableau de 2 lignes différentes, il
est normal que tu ne puisses pas supprimer une ligne
à la fois pour ces 2 lignes, car il y a une liaison qui ne peut
pas être brisée.
J'ai ouvert un tout nouveau fichier Word (Office 2010) J'ai inséré un tableau (table) X lignes par Y colonnes
"Fusionnées une ligne" : C'est à dire fusionner chacune des colonnes de cette ligne ou fusionner 2 lignes entières...
J'ai fusionné certaines LIGNES de ce tableau et j'ai exécuté cette macro pas à pas. J'ai pu supprimer toutes les lignes une à une à partir de la dernière ligne du tableau.
Pour ce faire utilise la touche F8
J'ai placé directement cette macro dans un module de Word '--------------------------------------- Sub test() Dim T As Table, NbRows As Long, A As Long Set T = ThisDocument.Tables(1) NbRows = T.Rows.Count
For A = NbRows To 1 Step -1 T.Rows(A).Delete Next End Sub '---------------------------------------
Si tu as fusionné par exemple 2 cellules adjacentes d'une colonne d'un tableau de 2 lignes différentes, il est normal que tu ne puisses pas supprimer une ligne à la fois pour ces 2 lignes, car il y a une liaison qui ne peut pas être brisée.
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD merci pour ta persévérance. Ta macro fonctionne bien. Mais sur mon tableau précis cela plante toujours dès la première tentative de suppression de la dernière ligne. Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la première ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
MichD merci pour ta persévérance.
Ta macro fonctionne bien.
Mais sur mon tableau précis cela plante toujours dès la première tentative de suppression de la dernière ligne.
Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la première ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD merci pour ta persévérance. Ta macro fonctionne bien. Mais sur mon tableau précis cela plante toujours dès la première tentative de suppression de la dernière ligne. Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la première ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
MichD
Lors de mon dernier message, j'ai été très précis quant à l'explication des divers types de fusion de cellules dans ton tableau.
Si tu obtiens des erreurs, il y a fort à parier que c'est à cause des cellules fusionnées.
Dans certains cas, à part d'enlever la fusion des 2 (ou plus) de cellules, il est IMPOSSIBLE de supprimer une seule ligne à la fois. Exemple, si les cellules D3 et D4 sont fusionnées, sélectionne cette cellule et regarde à l'extrême gauche de la barre de formule, il n'y a l'adresse d'une seule cellule, mais cette cellule est liée à 2 lignes. Dans ce cas, à moins de défusionner la cellule, il n'existe pas d'autres alternatives pour supprimer une ligne à la fois D3 ou D4
MichD --------------------------------------------------------------- "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD merci pour ta persévérance. Ta macro fonctionne bien. Mais sur mon tableau précis cela plante toujours dès la première tentative de suppression de la dernière ligne. Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la première ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
Lors de mon dernier message, j'ai été très précis
quant à l'explication des divers types de fusion
de cellules dans ton tableau.
Si tu obtiens des erreurs, il y a fort à parier que c'est
à cause des cellules fusionnées.
Dans certains cas, à part d'enlever la fusion des 2 (ou plus)
de cellules, il est IMPOSSIBLE de supprimer une seule ligne
à la fois. Exemple, si les cellules D3 et D4 sont fusionnées,
sélectionne cette cellule et regarde à l'extrême gauche de
la barre de formule, il n'y a l'adresse d'une seule cellule,
mais cette cellule est liée à 2 lignes. Dans ce cas, à moins
de défusionner la cellule, il n'existe pas d'autres alternatives
pour supprimer une ligne à la fois D3 ou D4
MichD
---------------------------------------------------------------
"pierrot33" a écrit dans le message de groupe de discussion :
CvKdnVAacf_XwYbPRVn_vwA@giganews.com...
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur
lequel je coince lamentablement. Je vais essayer d'être clair.
J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word
à partir d'un fichier excel base de données.
Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois
que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans
chacun de mes tableaux.
J'utilise ensuite le code:
oTbl2.Rows(oTbl2.Rows.Count).Delete
oTbl3.Rows(oTbl3.Rows.Count).Delete
oTbl4.Rows(oTbl4.Rows.Count).Delete
oTbl.Rows(oTbl.Rows.Count).Delete
Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3
Pour info j'ai utilisé
Set oTbl = wordDoc.Tables(7)
Set oTbl2 = wordDoc.Tables(8)
Set oTbl3 = wordDoc.Tables(5)
Set oTbl4 = wordDoc.Tables(9)
et
Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True)
.
Quelqu'un a une idée. Peut-être dans les propiétés
du doc word?
MichD merci pour ta persévérance.
Ta macro fonctionne bien.
Mais sur mon tableau précis cela plante toujours dès la première tentative
de
suppression de la dernière ligne.
Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes
fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la
première
ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme
en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
Lors de mon dernier message, j'ai été très précis quant à l'explication des divers types de fusion de cellules dans ton tableau.
Si tu obtiens des erreurs, il y a fort à parier que c'est à cause des cellules fusionnées.
Dans certains cas, à part d'enlever la fusion des 2 (ou plus) de cellules, il est IMPOSSIBLE de supprimer une seule ligne à la fois. Exemple, si les cellules D3 et D4 sont fusionnées, sélectionne cette cellule et regarde à l'extrême gauche de la barre de formule, il n'y a l'adresse d'une seule cellule, mais cette cellule est liée à 2 lignes. Dans ce cas, à moins de défusionner la cellule, il n'existe pas d'autres alternatives pour supprimer une ligne à la fois D3 ou D4
MichD --------------------------------------------------------------- "pierrot33" a écrit dans le message de groupe de discussion :
Le mercredi 21 Août 2013 à 17:14 par ierrot33 :
Bonjour,
Je suis embêté par un bug à priori tout bête mais sur lequel je coince lamentablement. Je vais essayer d'être clair. J'utilise les fonctions de VBA pour éditer des tableaux dans un doc word à partir d'un fichier excel base de données. Ma macro ajoute une ligne à chacun de mes tableaux à chaque fois que j'ajoute un doc, à la fin, j'ai donc une ligne en trop vide dans chacun de mes tableaux. J'utilise ensuite le code: oTbl2.Rows(oTbl2.Rows.Count).Delete oTbl3.Rows(oTbl3.Rows.Count).Delete oTbl4.Rows(oTbl4.Rows.Count).Delete oTbl.Rows(oTbl.Rows.Count).Delete Cela marche pour les tableaux OTbl2 et 4 mais pas pour les 1 et 3 Pour info j'ai utilisé Set oTbl = wordDoc.Tables(7) Set oTbl2 = wordDoc.Tables(8) Set oTbl3 = wordDoc.Tables(5) Set oTbl4 = wordDoc.Tables(9) et Set wordDoc = WordApp.Documents.Open(fichier, ReadOnly:=True) . Quelqu'un a une idée. Peut-être dans les propiétés du doc word?
MichD merci pour ta persévérance. Ta macro fonctionne bien. Mais sur mon tableau précis cela plante toujours dès la première tentative de suppression de la dernière ligne. Pour info il s'agit de deux lignes partiellement fusionnées, cad 7 colonnes fusionnées, 5 non fusionnées dont deux fusions de deux colonnes sur la première ligne et de trois colonnes sur la première ligne. Le tout est utilisé comme en-tête qui se répète sur chaque nouvelle page word. J'espère être clair.
MichD
Et RETIENS que ce n'est jamais une bonne idée de fusionner des cellules dans un tableau de données dans une feuille de calcul, et pour preuve, la problématique que tu vis présentement.
Et RETIENS que ce n'est jamais une bonne idée de fusionner
des cellules dans un tableau de données dans une feuille
de calcul, et pour preuve, la problématique que tu vis
présentement.
Et RETIENS que ce n'est jamais une bonne idée de fusionner des cellules dans un tableau de données dans une feuille de calcul, et pour preuve, la problématique que tu vis présentement.