Macro insertion de lignes en fonction val cellule

Bonjour,

J'ai dernièrement mis en ligne un post à propos du même sujet, et grâce à certains, j'ai pu arrivé à mes fins! Enfin, presque. Un problème se pose à moi, et je n'arrive pas à le résoudre.

Dans le fichier joint, vous pourrez voir que le but est de créer une fiche de formation individuelle, qui s'adapte à chacun.

Si je met l'utilisateur un, seul les formations auquel il devra participer s'afficheront. Afin de cacher les lignes blanche (les formations auxquelles il ne participera pas ), je vais créer une macro (ca devrait le faire normalement).

Mon soucis se concentre sur la date et le lieux. En effet, si il n'y a qu'une session de formation, aucun problème. Mais lorsqu'il y a 2 ou plus, il faut que j'insère une ligne afin de faire apparaitre le nombre de dates et lieux correspondant à ma cellule de la ligne F.

J'ai pensé à une macro insérant le nombre de ligne-1 par rapport à la valeur de la cellule, mais je n'arrive pas à la mettre en place.

J'espère avoir été assez clair sur mon problème..

Merci d'avance !

Rémi

PS : j'ai déjà regardé les posts ayant une problématique similaire, mais ça n'a rien donné

69aide-excel-1.xlsx (33.61 Ko)

Bonjour

Je ne vois pas la correspondance qu’il y a entre les deux tableaux qu’on trouve sur la feuille ‘’Base de données’’.

Pour le module 1, intitulé ‘’général’’, par exemple, tu dis dans ton exemple sur la feuille ‘’Fiche individuelle’’ en cellule F11 qu’il y a 2 ‘’tps/session’’.

Où trouve-t-on ce ‘’2’’ dans les tableaux de la Base de données ?

Dans le premier tableau, on a 1 Session (cellule E2) et 2 formations par module (cellule J2) mais seulement une seule date dans le deuxième tableau en cellule D25.

A te relire.

Bye !

Bonjour,

Merci pour votre réponse. Sur l'onglet 'base de données', le premier tableau est la matrice ou j'entre les informations propres à chaque module ( temps par session en h, nb max de personne/ session, etc). A partir de toutes ces infos, je définit le nombre de session par module.

Le tableau en dessous sert à définir toutes les horaires possibles pour chaque module (il sera rempli a la main).

Le but est de définir, de façon aléatoire ou à la main, les horaires de chaque utilisateur. Mais pour ce faire, il me faudrait une mise en forme de la fiche individuelle automatisée. Sur l'onglet "fiche individuelle" pour le module "logistique", la macro voit qu'il y a la valeur 2 dans la cellule E22, alors il faudra insérer une ligne supplémentaire.

Cette info est piochée dans la cellule E13 de l'onglet Base de données.

Je vous retransmet le fichier de base.

Suis-je plus clair?

Merci d'avance,

Rémi

36aide-excel-1.xlsx (33.87 Ko)
remi03 a écrit :

Sur l'onglet "fiche individuelle" pour le module "logistique", la macro voit qu'il y a la valeur 2 dans la cellule E22, alors il faudra insérer une ligne supplémentaire.

Tu ajoutes à la confusion dans mon esprit.

Dans ton premier message, tu parlais de la cellule F22 :

il faut que j'insère une ligne afin de faire apparaitre le nombre de dates et lieux correspondant à ma cellule de la ligne F.

Quelle colonne faut-il donc prendre pour ajouter ou pas des lignes en fonction de ce que contient la cellule ?

Bye !

Désolé je suis sur le sujet depuis un petit moment et je m'y perd

Pour l'insertion des lignes, il faut prendre en compte la valeur de la colonne E de la base de données ( le 1er tableau - "Nb session")

Il n'y a pas besoin d'utiliser le tableau du dessous.

Si Nb de session = 3, alors j'aurais besoin d'insérer deux lignes supplémentaires ( car une ligne déjà existante ).

Est-ce mieux?

Rémi

Un essai à tester. Te convient-il ?

Bye !

143aide-excel-v1.xlsm (41.07 Ko)

J'ai bien télécharger ton fichier, et j'ai regarder le code. Mais la macro ne s'active pas automatique à chaque fois que je change l'utilisateur. Peut-être est ce tout simplement moi qui ne fais pas le choses correctement.

Pouvez vous m'éclairer la dessus?

Rémi

remi03 a écrit :

la macro ne s'active pas automatique à chaque fois que je change l'utilisateur

J'avais le même problème avec le fichier original que tu as joint à ton premier message et avec lequel j'ai travaillé.

Avant que je ne trouve le pourquoi : dans ce fichier, le calcul n'était pas automatique mais manuel.

Une fois passé en automatique, cela est allé beaucoup mieux.

Il faut donc faire :

"FORMULES (dans le bandeau) - Options de calcul - Automatique"

OK ?

Bye !

Oui, je connais le calcul, c'est moi qui l'avait mis en manuel. Ce que j'entend par "je n'arrive pas à activer la macro", est que lorsque je change d'utilisateur, je n'ai pas de ligne qui s'insère automatiquement.

Si pour la ligne 19, "module formation", ma cellule en colonne E contient 3, alors 2 lignes devraient apparaitre automatiquement.

Impossible pour ma part d'activer ceci.

Merci !

Rémi

remi03 a écrit :

Si pour la ligne 19, "module formation", ma cellule en colonne E contient 3, alors 2 lignes devraient apparaitre automatiquement.

A part le fait que je ne trouve nulle part le" module formation", ni à la ligne 19 ni ailleurs, c'est bien le resultat que j'obtiens sur mon PC : voir les 2 captures d'écran que j'obtiens quand je demande l'affichage de "Utilisateur 1" et "Utilisateur 2". Les lignes jaunes sont vides et ont été ajoutées par la macro.

capture 1 capture2

Bye !

Désolé pour mes indications douteuses, je me suis emmêlé les pinceaux. C'est exactement le résultat que je recherche. Mais je ne sais pas comment déclencher la macro .

Lorsque je fais alt +F8, j'ai seulement la macro évènement qui apparait.

En tout cas merci, je vais maintenant réfléchir à comment intégrer les dates automatiquement dans les cellules insérées.

Cordialement,

Rémi

remi03 a écrit :

je ne sais pas comment déclencher la macro

Elle devrait se déclencher seule chaque fois que tu changes d'utilisateur dans la liste déroulante de la cellule B6

Bye !

Bonjour,

Effectivement cela se déclenche tout seul! 9a ne fonctionnait pas car j'étais en lecture seule. Merci beaucoup pour votre aide,

Au plaisir,

Rémi

Bonjour,

Je suis complètement novice et je commence à peine les macros (c'est dire !)

Je souhaite pouvoir sur le fichier joint dire qu'en fonction de la valeur d'une celulle de la colonne K alors "x" lignes seront à insérer.

Dans la feuille "Infos insertion de lignes" il y a le nombre de ligne à insérer en fonction de la valeur de la colonne K.

Pour info j'ai un fichier réel de 2147 lignes qui est bien plus rempli que celui joint ici.

Merci à tous de vos conseils et éventuellement solutions.

Bonne journée,

CC

43excel.xlsm (9.48 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

96excel-v1.xlsm (25.40 Ko)

Bonjour Gmb,

Je te remercie de ta réponse et de la qualité du résultat.

C'est en effet exactement ce que j'attendais. Un grand merci à toi !!

Merci encore pour ton aide et excellente journée à toi, au plaisir,

CC

Bonjour,

Merci également pour ce code car il m'a bien aidé.

Ceci étant, j'aurais une question:

Dans le fichier que j'utilise, j'ai du ajouté une colonne. Le problème est que la macro ajoute des lignes de la colonne A à K. J'aurais donc voulu savoir quel est la marche à suivre pour que les lignes soient ajouté sur toutes les colonnes.

Voici le code :

Option Explicit

Dim tablo, tabloInf, tabloR(), i&, j&, iInf&, k&

Sub ZoneTexte1_Cliquer()

    tablo = Range("A2:K" & Range("K" & Rows.Count).End(xlUp).Row)
    With Sheets("Infos insertion de lignes")
        tabloInf = .Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row)
    End With

    k = 0
    For i = 1 To UBound(tablo, 1)
        For iInf = 1 To UBound(tabloInf, 1)
            If tablo(i, 11) = tabloInf(iInf, 1) Then
                ReDim Preserve tabloR(UBound(tablo, 2), k + 1)
                For j = 1 To 11
                    tabloR(j - 1, k) = tablo(i, j)
                Next j
                k = k + tabloInf(iInf, 2) + 1
            End If
        Next iInf
    Next i

    Range("A2").Resize(UBound(tabloR, 2), 11) = Application.Transpose(tabloR)
End Sub

Merci beaucoup !

SD

Bonjour à tous

sebelo06 a écrit :

avoir quel est la marche à suivre pour que les lignes soient ajouté sur toutes les colonnes.

Pour faire ça à toutes les colonnes, il faudrait s'y prendre autrement, c'est a dire sans se servir de variables tableau car le PC risquerait de se mettre à genou....

Mais comme je n'ai jamais eu l'occasion de travailler sur les 16000 colonnes d'une feuille, on peut demander à la macro d'optimiser et de ne travailler que sur le tableau défini en largeur par les cellules non vides de la ligne 1.

Voir l'adaptation ci-joint :

83excel-v2.xlsm (26.52 Ko)
Rechercher des sujets similaires à "macro insertion lignes fonction val"