Forum Clubic

Excell - Ajout de lignes automatique

Bonjour,

J’aurais voulu savoir si une bonne âme pouvait m’aider concernant l’ajout automatique de lignes sur excell.

J’ai créer un modèle de facture allant de la colonne A et à la D. J’aimerais, à chaque fois que j’ai rempli une ligne, qu’une autre soit ajoutée automatiquement et qu’elle copie en même temps les formules de la ligne précédente.
Cela me servirait donc à adapter la taille de la facture en fonction du contenu que j’ai à inscrire.

J’ai pu lire des articles sur des macros, mais je ne sais absolument pas ce que ça veut dire ni comment faire…
Merci pour votre aide.

Il faut que tu passes par une macro qui aura deux fonctions :
1- détecter que la ligne “en cours” est remplie.
Cette partie se fait en gérant l’évènement change() de la feuille
2- copier la dernière ligne remplie, se déplacer sur la première cellule de la ligne suivante et faire insérer cellules copiées

Dans un premier temps, tu laisses tomber le point 1, tu écris le point 2 en utilisant la fonction macro automatique
(Outils > Macro > Nouvelle Macro).
Ensuite, tu lui associes un bouton (que tu effaceras en fin de test) pour la lancer à la demande.

Tu peux modifier le code généré en l’éditant par Outils > Macros > (choisir la macro) > Modifier

Quand cette partie sera au point, tu redemanderas de l’aide pour l’automatiser en fonction de ta saisie

Un tout grand merci…
Je suis arrivée à réaliser ton point 2…
Je ne connaissais pas du tout cette fonction.
Tu sais m’aider pour le point 1 ou pas :wink: ?

Tu vas dans l’éditeur visual basic et tu double cliques sur feuil1 pour afficher son code (vierge au début : normal)
Dans les fenêtres déroulantes, en haut, tu choisis worksheet (à gauche) puis change (à droite). Tu vas obtenir le squelette d’une fonction qui sera appelée à chaque fois que tu provoqueras un changement dans une cellule.
Pour la tester, tu peux mettre un message d’alerte :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "J’ai détecté un changement dans la cellule " + Target.Address, vbInformation
End Sub

Après, il faut que tu construises ta fonction pour

  • ne rien faire s’il ne s’agit pas de la dernière ligne
  • ne rien faire si la dernière ligne n’est pas complète
    effectuer les changements dans le ca contraire (là il suffit d’appeler la fonction qui est actuellement liée à ton bouton)