Lignes s'imputant hors du tableau après MAJ en VBA

Bonjour à tous,

J'ai un soucis avec un fichier utilisant essentiellement des macros : il a été concu par un stagiaire et j'essaie de le reprendre avec plus ou moins de succès... En gros j'essaie de mettre à jour un tableau, sauf que les lignes s'ajoutent hors du tableau.

Le principe:

Il s'agit d'un fichier d'inventaires avec plusieurs onglets selon le type de produits (boissons, viande etc) et des onglets Pertes. Sur l'onglet Perte il s'agit de faire remonter les produits de certains onglets, ce qui doit mettre à jour le tableau. Or, lorsque que j'utilise le code suivant, les lignes de produits s'ajoutent bien, mais en dessous du tableau! Je ne comprends pas pourquoi elles ne s'y imputent pas, alors que le nom du tableau est correct par ailleurs.

Lignes de code:

Sub PertesBar()

Select Case MsgBox("Voulez-vous mettre à jour les Références-Pertes BAR?", vbYesNo)
Case vbNo
    Select Case MsgBox("Cliquer sur OK pour abandonner")

End Select

Case vbYes

Sheets("Pertes BAR").Range("PertesBar[[Famille]:[Produit]]").ClearContents

'D_finition du tableau de compilation des donn_es
Z = Sheets("Pertes BAR").Range("A670").End(xlUp).Row + 1

'Recup Info Boissons Alcoolisées

Sheets("Boissons A").Range("BoissonsAlcool[[Famille]:[Produit]]").Copy
Sheets("Pertes BAR").Range("A" & Z).Select
Sheets("Pertes BAR").Range("A" & Z).PasteSpecial xlPasteValues

Z = Sheets("Pertes BAR").Range("A670").End(xlUp).Row + 1

'Recup Info Boissons Sans Alcool

Sheets("Boissons S-A").Range("BoissonsSansAlcool[[Famille]:[Produit]]").Copy
Sheets("Pertes BAR").Range("A" & Z).Select
Sheets("Pertes BAR").Range("A" & Z).PasteSpecial xlPasteValues

Z = Sheets("Pertes BAR").Range("A670").End(xlUp).Row + 1

MsgBox ("Stocks Produits mis à jour")

End Select

End Sub

Avez-vous une explication?

Merci d'avance pour toute aide (ou code moins compliqué!)

excel vba

Bonsoir,

avez-vous essayer ceci :

Si la création de la ligne en automatique ne marche pas, il vous faut changer une option dans excel :

Fichier - Option - Vérification - Options de correction automatique - Onglet : Mise en forme automatique au cours de la frappe - Cochez l'option : Appliquer Inclure de nouvelles lignes et colonnes au tableau

il faudra peut-être ajuster à "la main" les lignes déjà entrées : pour ce faire il suffit "d'attraper" la petite marque bleue en bas à droite du tableau et de la "tirer" afin d'englober les lignes existantes.

Une fois l'option Excel "réglée" les nouvelles lignes devraient s'intégrées automatiquement.

Disons comme même que je n'ai pas testé en l'absence de fichier

@ bientôt

LouReeD

Bonsoir...Les tableaux c'est pas mon domaine mais après quelques tests, .clearcontents vide les cellules mais n'effacent pas le nombre de ligne. Du coup une alternative peut se faire comme ceci :

Dim table As ListObject
Set table = Feuil1.ListObjects("tableau3")
Feuil1.Range("tableau3").Rows("1:" & table.ListRows.Count).Delete

De cette façon, lors de la copie il n'y aura déjà pas de grand vide car les lignes du dit tableau auront été supprimées.

Dans votre cas, pour l'adapter il faudra changer "Feuil1" et "tableau3" par vos références à vous.

Ses informations vous ont elles étaient utile ?

Merci pour vos réponses:

@LouReeD La case 'ajout de lignes' était déjà cochée...

@Machin Merci pour le code, ça efface bien les lignes avant la màj, par contre ça m'ajoute les nouvelles lignes toujours en dessous du tableau :/

Bonsoir,

en regardant de plus près l'image fournie, on s'aperçoit qu'il y a un trait plus épais en bas du tableau avant la dernière ligne !

Sur le tableau, la ligne "totaux" est affichée, et je crois bien qu'avec ce type d'affichage on ne peut pas ajouter une nouvelle ligne et qu'elle s'intègre "toute seule" dans le tableau !

Alors essayez de mettre ce code :

ActiveSheet.ListObjects("Tableau1").ShowTotals = False

avant le votre afin d'enlever cette ligne de totaux, et ensuite une fois votre code effectué, remettez la ligne des totaux avec ce code :

ActiveSheet.ListObjects("Tableau1").ShowTotals = True

Evidemment il faut ajuster le nom du tableau avec le nom du votre...

Pas essayé, car pas de fichier (Bonsoir Machin ! )

@ bientôt

LouReeD


Bonsoir Machin,

votre signature n'a plus de correspondance avec votre avatar !

@ bientôt

LouReeD

Bonsoir loureed...Ah oui en effet. Mais...Halloween c'est fini non ?

C'est mieux ?

@ bientôt

LouReeD

Oui...Enfin pas pour ceux qui se sente visés

  • tu pleures ?
  • Rémy c'est fait éplucher, il est dans un état grave...

Désolé, mais c'est Machin et non pas Machine

Rechercher des sujets similaires à "lignes imputant hors tableau maj vba"