VBA - Insérer une ligne dans une sélection

Bonjour,

Je vais essayer d'être le plus clair possible.

J'ai 2 tableaux sur 2 onglets différents avec un nombre de ligne qui change tout le temps.

Par exemple :

Dans mon tableau 1, j'ai pour le mois de janvier : 3 opérations donc 3 lignes (nom de la sélection 'source') mais pour le mois de février je vais créer une nouvelle opération donc 4 lignes, etc... voir le mois prochain supprimer 1 opération donc plus que 3 lignes.

Dans mon tableau 2, je reprends toutes ces opérations que je croise avec d'autres données venant d'un autre fichier avec des formules en recherchev, pour l'instant j'ai réussit à créer une macro VBA qui fonctionne seulement si le nombre de ligne est identique :

Sub Copy()

Range("SourceOp_Livrées").ClearContents

Range("SourceOp_EnCours").ClearContents

Range("SourceOp_Livrées").Copy Destination:=Range("CibleOp_Livrées")

Range("SourceOp_EnCours").Copy Destination:=Range("CibleOp_EnCours")

MsgBox "Mise à jour terminée"

End Sub

Maintenant j'aimerais qu'en fonction du nombre d'opérations (donc de lignes) du tableau 1, que la macro m'insére ou me supprime le nombre de ligne nécessaire pour le tableau avec les formules (et pas seulement une cellule càd par exemple de A5:G18),

Si qq'un peut m'aider...

Merci

Salut et bienvenue sur le Forum,

Il est où ton fichier

Cordialement.

NB : Pour joindre un fichier ......

joindre un fichier

Merci, voici un exemple de fichier

Cordialement,

Re,

Ton fichier modèle semble avoir été fait un peu à la va-vite ; il n’y a pas tes macros, il n’y a pas de données dans les colonnes (même pas dans la colonne ‘Date’ !), c’est difficile de voir où tu veux en venir avec ton travail, d’autant plus que tes explications de ton premier message ne semblent pas concorder avec ton fichier.

Peux-tu alors nous fournir un fichier complété et – sur cette nouvelle base – préciser ce que tu désires vraiment ? En d’autres mots, aide-nous à t’aider

A te relire.

Ci-joint la version avec la macro,

Merci

8test-macro-op.xlsm (30.96 Ko)
Yvouille a écrit :

Peux-tu alors nous fournir un fichier complété et – sur cette nouvelle base – préciser ce que tu désires vraiment ?

Indique-moi s'il-te-plait un ou deux exemples de ce que tu veux voir automatiser

ok désolé, je t'ai mis une explication dans le fichier et ci-dessous :

"à fin mai, j'ai 2 opérations dans la catégorie : Livrés. Le mois prochain, j'ai par exemple 2 nouvelles op

(en rouge), et je veux recopier ces 4 opérations sur le tableau de l'onglet Comm. Aujourd'hui le seul moyen que

j'ai trouvé est de créer un nombre de lignes suffissants càd 10 lignes par catégorie mais demain, je peux avoir 15 opérations sur la

catégorie 'Livrés' et du coup ça ne fonctionne plus.

Merci de votre aide,

Cordialement,


et le même principe sur la suppression, aujourd'hui je peux avoir 25 opérations donc 25 lignes et le mois prochain, seulement 10 opérations donc 10 lignes.

Merci

7test-macro-op.xlsm (31.56 Ko)

Help, personne pour m'aider...

Si, moi, mais il faut quand même me laisser un peu de temps

Re-salut et merci pour ta patience,

Dans le fichier ci-joint tu as quelques données sur ta feuille ‘Comm’. Si tu vas sur la feuille ‘EMR’, tu vois qu’il y a des données nouvelles en rouge et les opérations 6 et 7 ont disparus. Lorsque tu cliques sur le bouton en place sur cette dernière feuille, les données de la feuille ‘Comm’ sont réactualisées, comme tu le désirais j’espère.

J'ai considéré que la structure de base de ton fichier (emplacement des colonnes, diverses cellules-clé comme 'Livrés', 'Total livrés', etc.) ne changerait pas.

Amicalement.

EDIT : Juste après avoir posté le fil ci-dessus, je me rends compte qu'il peut y avoir des problèmes si une seule ligne a été reportée précédemment sur la feuille 'Comm' sous 'Opérations achevées' ou sous 'Opérations en cours' ou s'il n'y a qu'une seule ligne à reporter depuis la feuille 'EMR'. Merci donc de tester déjà le reste du travail et on verra si de tels cas peuvent arriver (merci de me le faire savoir).

J'étais en déplacement hier et je viens juste de récupérer et tester le fichier, à priori ça fonctionne, c'est exactement ce que je cherchait à faire, merci Yvouille !!! Maintenant il faut que je l'adapte à mon fichier en entier...

Peux-tu m'expliquer certaines logiques et commandes comme par exemple :

A quoi sert la fonction "DL" ? "MATCH" ? Autofill ? etc... ,

En tout cas un grand merci...

Cordialement,

Salut,

Pour comprendre une macro, tu peux utiliser les fiverses aides extraordinaires offertes par Excel.

Afin d’obtenir des informations sur un mot-clef, tu places ton curseur sur le mot (par exemple MATCH) et tu cliques sur F1. Tu verras alors toute l’explication sur cette fonction VBA, très souvent accompagnée d’exemples, etc. Tu verrais donc que la fonction VBA WorksheetFunction.Match() correspond à la fonction Excel =EQUIV().

Tu peux aussi faire défiler ton code au pas-à-pas et observer ce qui se passe. Lorsque tu arrives alors sur une ligne telle que celle-ci : .Range("C" & DL_EnCours_Comm + 1).AutoFill Destination:=.Range("C" & DL_EnCours_Comm + 1 & ":C" & DL_EnCours_Comm + Nombre_EnCours), tu peux faire apparaître à l’écran la cellule Excel concernée et tu verras, lors de ton prochain déclenchement pas-à-pas, que la formule placée dans cette cellule est incrémentée vers le bas. Donc Autofill = Incrémentation.

‘DL’ est une abréviation personnelle – et provisoire, lorsqu’il n’y a que très peu de dernières lignes à rechercher, j’utilise plutôt ‘DerLig’ - pour ‘Dernière ligne’ et utilisée dans ton fichier pour plusieurs dénominations de variables. Ainsi au lieu de nommer par exemple ma variable ‘DL_Livrés_EMS’ j’aurais pu la nommer ‘Blablabla’ et ça aurait fonctionné la même chose.

sebsoweb a écrit :

Maintenant il faut que je l'adapte à mon fichier en entier...

Il aurait peut-être été plus simple de me fournir directement ton fichier réel

Amicalement.

Oui je sais qu'il aurait été plus simple de te mettre le fichier complet mais il est confidentiel... voilà pourquoi je ne l'ai pas mis...

OK je vais essayer d'utiliser les astuces d'aide (F1)... et te tiens au courant lorsque mon fichier sera finalisé et fonctionnera correctement.

Cordialement,

Bonjour Yvouille,

Je trouve enfin le temps d'adapter la macro à mon fichier et ça avance bien.

Néanmoins j'aimerais simplifier une ligne :

.Range("E" & 13 + Nombre_Livrés).FormulaR1C1 = "=SUM(R[-" & Nombre_Livrés & "]C:R[-1]C)"

Je suis obligé de créer cette ligne de commande pour autant de colonne que j'ai càd pour cette exemple 60 colonnes, n'y-a-til pas un moyen de simplier de manière à avoir qq comme ça : de la colonne E à la colonne BM de type E:AM

Merci d'avance,

Cordialement

OK je viens de trouver... ça avance, ça avance, trop cool

Tant mieux pour toi si tu as trouvé la solution et désolé pour mon temps de réaction

Yvouille,

je redemande tes lumieres, il me faudrait la même chose mais au lieu de 2 sélection, il m'en faut 4.

Peux-tu m'aider ou qq'un d'autres ?

Merci

Re,

Je ne me souviens plus trop de ta demande et un petit fichier parlant – incluant tes dernières modifications - serait le bienvenue, avec les quelques précisions nécessaires à ta nouvelle demande.

Cordialement.

Ci-joint le fichier de la dernière fois avec les 2 parties en +

Merci d'avance

Salut,

Ton fichier a à nouveau été fait à la va-vite et ne donne pas l’envie d’y investir du temps. Tu n’as pas effacé le commentaire dans la colonne N de la feuille EMR et on ne sait pas si c’est une information actuelle ou non. Ensuite tu as modifié l’emplacement des colonnes (la colonne F du fichier V1 se retrouve à la colonne B du nouveau fichier) et il faudrait reprendre la macro de fond en comble afin que tout joue à nouveau. Tu as un titre de tableau ‘En développement’ sur la feuille EMR que l’on ne retrouve pas sur la feuille Comm. Puis comme ton fichier modèle ne correspond pas à ton fichier réel, on se demande si l’on fait du boulot dans le vide puisqu’il faudra encore adapter la macro modifiée au fichier réel

Dans ces conditions-là, je ne fais rien. Veux-tu me fournir ton fichier réel en rendant anonyme les données sensibles (mais sans les effacer purement et simplement, il faut quand même que je puisse comprendre ton fichier) ?

A te relire.

Rechercher des sujets similaires à "vba inserer ligne selection"