Automatisation d'insertion de nombre de ligne

0

Bonjour, 

Je souhaiterai créer un fichier permettant de saisir des données par pièces pour des bâtiments. 

Le nombre de pièces étant souvent conséquent et très aléatoire en fonction du projet, j'aimerai automatiser le nombre de lignes à insérer dans le tableau en fonction du nombre de pièces par étage afin d'éviter de devoir insérer chaque ligne manuellement.

Exemple de mise en forme du tableau envisagé (simplifié)

https://www.cjoint.com/c/NAAolFYWeRv

Avez vous une solution pour ce sujet ?

Merci beaucoup :)

    Posté le 26 janvier, 15:15
    par mat.hb.3968
    Répondre
    0

    Bonsoir mat.hb.3968,

    ton fichier en retour : https://www.cjoint.com/c/NAArXcyjcM0

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    ce que tu avais mis en A1:B4, je l'ai décalé à droite en D1:E4 ; pourquoi ?
    pour augmenter la largeur de la colonne B, cela sans que la largeur
    des 3 cellules jaunes soit trop grande ; ainsi, en colonne B, ça te permet
    de mettre des noms de pièces éventuellement longs, par exemple :
    « Salle à manger » ou « Salle de bain ».

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    dans le tableau principal, pour chaque étage, il y a une seule pièce :
    "Pièce 1" ; ce sont les 3 lignes 10 ; 12 ; 14.

    fais Ctrl e ➯ ça y'est : pour chaque étage, tu as autant de pièces
    que c'était demandé en E2:E4.  :)

    c'est sympa, hein ? mais attends, ce n'est pas fini !  ;)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    dans ton énoncé : « Le nombre de pièces est souvent conséquent
    et très aléatoire en fonction du projet »

    alors supposons que le projet a un peu évolué : pour l'étage 2,
    il faut finalement 8 pièces au lieu de 5.

    pas de problème : en E3, saisis 8, puis fais Ctrl e ➯ c'est fait :
    tu as 8 pièces pour le 2ème étage ; en clair : ça a ajouté 3
    nouvelles lignes, sans toucher aux autres lignes.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    de la même façon, sans que le projet évolue, ça te permet aussi
    de corriger une éventuelle erreur de saisie ; exemple : en E3,
    tu avais tapé 5 au lieu de 8 ; donc tu peux corriger ainsi : en E3,
    saisis 8 au lieu de 5 ; fais Ctrl e.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    en E2, saisis 10 ; en E4, saisis 20 ; fais Ctrl e ➯ c'est fait :
    tu as 10 pièces pour l'étage 1 ; 8 pièces pour l'étage 2 ;
    et 20 pièces pour l'étage 3.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    fais Ctrl F2 ➯ Aperçu avant impression ; c'est prêt à être imprimé
    sur une imprimante, ou mieux : dans un fichier (pour économiser
    le papier et l'encre ; et pour préserver l'environnement)
    .

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    attention : ce que j'ai fait est uniquement pour ajouter des lignes ;
    si dans une cellule jaune tu saisis un nombre de pièces plus petit
    que le nombre de pièces qu'il y a déjà pour un étage, faire Ctrl e
    ne va PAS supprimer les lignes en trop ! (pour cet étage)

    techniquement, j'aurais pu le faire, mais c'est volontairement que
    je ne l'ai PAS fait ; c'est PAR SÉCURITÉ, pour ÉVITER le risque
    de supprimer par inadvertance des lignes de pièces déjà saisies
    que tu voudrais conserver ; donc si vraiment y'a des lignes de
    pièces déjà saisies dont tu ne veux plus, tu devras les supprimer
    manuellement.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    si le nombre de pièces saisi dans une cellule jaune est le même
    que le nombre de pièces qu'il y a déjà pour un étage, Ctrl e ne
    fera aucun changement(pour cet étage)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    fais Alt F11 pour voir le code VBA ; puis fais de nouveau Alt F11
    pour revenir sur Excel.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    si besoin, tu peux demander une adaptation.
    à te lire pour avoir ton avis.  :)

    rhodo

    rhodo Posté le 26 janvier, 18:52
    par rhodo
    0

    Bonjour mat.hb.3968,

    au cas où tu préfères quand même avoir le nombre de pièces en B2:B4,
    mais avec une largeur moins grande pour le nom des pièces :

    version v2https://www.cjoint.com/c/NACl0I4RI60

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    même utilisation ; exemple :

    en B2 : saisis 20 ; en B3 : saisis 8 ; en B4 : saisis 10 ; fais Ctrl e
    étage 1 : 20 pièces ; étage 2 : 8 pièces ; étage 3 : 10 pièces

    même possibilité d'ajouter des pièces « après-coup ».

    si le nombre de pièces saisi dans une cellule jaune est inférieur
    ou égal au nombre de pièces qu'il y a déjà pour un étage :
    aucun changement ➯ il n'y a pas de suppression automatique
    de lignes ➯ si besoin, à faire manuellement.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    seul changement dans le code VBA : « p = Cells(i + 1, 5) » est devenu
    « p = Cells(i + 1, 2) » ; c'est l'instruction qui est dans la boucle For..Next,
    juste à droite de « n = b - a ».

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    SI tu auras besoin d'une adaptation, dis-moi à partir de quelle version
    il faudra la faire : la 1ère version, ou la version v2.

    à te lire pour avoir ton avis.  :)

    rhodo
    rhodo Posté le 28 janvier, 13:15
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :