Créer une macro pour supprimer les lignes d'un tableau de taille variable

Bonjour,

Débutant avec Excel, je suis face à un petit problème que je ne parviens pas à résoudre. Je vais essayer d'expliquer clairement mon souci :

  • Sur une feuille A, je dispose d'un tableau composé de 3 colonnes et d'une seule ligne, qui me sert de chablon. Les colonnes 1 et 2 sont de simples valeurs, et la colonne 3 est une formule multipliant la valeur de la colonne 2 avec une autre valeur située sur une autre feuille.
  • Sur une feuille B, je dispose d'un formulaire où l'utilisateur peut entrer des valeurs dans 2 cases. Un bouton en bas de cette feuille effectue les actions suivantes :
    • 1) Créer une ligne dans le tableau de la feuille A, qui reprend le format de la ligne d'en-dessous (d'où mon besoin d'avoir un chablon).
    • 2) Copier les valeurs 1 et 2 de la feuille B dans les colonnes 1 et 2 du tableau de la feuille A, dans la ligne que je viens de créer.

Mes questions sont les suivantes :

1. Est-il possible de ne pas avoir à utiliser un chablon ?

2. Est-il possible de créer une macro qui supprime toutes les lignes du tableau, sauf le chablon ? (Le problème étant que le nombre de lignes au moment de vider le tableau dépend du nombre d'entrées qu'il y a eu..)

Merci d'avance pour le coup de main,

Meilleures salutations,

Eldervand

Bonjour,

Quand on crée un tableau nommé sur Excel (via Accueil puis Mettre sous forme de tableau), on obtient un tableau de taille variable et on peut créer des formules de colonne qui sont utilisées pour chacune des lignes.

Ce genre de tableaux ont toujours une en-tête et au moins une ligne.

Il est donc possible de mettre la formule de la 3ème colonne sur cette ligne, qui sera utilisée pour chaque ligne.

En revanche ce qu'il est possible de faire, c'est d'écrire sur cette première ligne si la colonne A est vide, puis par la suite, écrire en dessous de la dernière ligne du tableau à chaque fois, il sera redimensionné automatiquement.

Un exemple de ce que ça pourrait donner:

Dim ligExport as Long
With Sheets("Feuille A")
    ligExport = .Range("A" & Rows.Count).End(xlup).Row
    If Not .Range("A" & ligExport) = "" then
        ligExport = ligExport + 1
    End If
    .Range("A" & ligExport, "B" & ligExport).Value = Sheets("Feuille B").Range("A2:B2").Value 
End With

En revanche, je ne vois pas à quoi servirait la suppression des saisies

Merci pour ta réponse,

Je vais aller suivre quelques tutoriels pour essayer de comprendre le code que tu m'as envoyé, car c'est encore un peu compliqué pour moi !

Pour la suppression des saisies, peut-être que je me suis mal exprimé, mais le but est simplement d'avoir un bouton permettant de vider le tableau (une fois des paiements effectués par exemple) et de se retrouver avec un tableau vierge prêt à être réutilisé

D'accord je comprends,

dans ce cas ça ressemblerait à:

Dim ligFin as Long
With Sheets("Feuille A")
    ligFin = .Range("A" & Rows.Count).End(xlup).Row

    On Error Resume Next
    .Range("A2:C" & ligfin).Delete Shift:= xlShiftUp
    On Error Goto 0
End With

ça vide le tableau en plus de supprimer les lignes inutiles.

Au départ ça "enlève" aussi la formule en colonne C, mais de mon côté, dès que je replace des valeurs dans la ligne la formule se remet toute seule.

Bonjour,

Merci pour ta réponse !

Je m'interroge sur une des lignes de ta réponse.

ligFin = .Range("A" & Rows.Count).End(xlup).Row

Pourquoi utiliser le sigle "&" au lieu de ":" ?

Merci d'avance !

Je viens de comprendre, désolé du dérangement !

Rechercher des sujets similaires à "creer macro supprimer lignes tableau taille variable"