Copier et insertion de lignes en fonction d'un nombre

Bonjour

Nouvel essai ?

Bye !

Super ça l'air de fonctionner.

Merci.

Juste pour ma culture perso et pour mieux comprendre un peu le VBA.

Qu'est-ce que tu as modifié ou ajouté et où ? Pour moi le code pour la colonne V est le même.

Cordialement.

philippe.p@ a écrit :

Pour moi le code pour la colonne V est le même.

Tu n'es pas très observateur...

Il y avait :

tabloV = Range(Cells(3, 22), Cells(derln, 22))

Ce qui veut dire que l'on mettait la valeur du range dans la variable tableau.

Il y a maintenant

tabloV = Range(Cells(3, 22), Cells(derln, 22)).Formula

en précisant bien que l'on ne veut pas la valeur mais la formule....

OK ?

Bye !

Ouah tu as raison, je ne suis pas observateur et pourtant je pensais avoir bien regardé.

Merci pour la précision.

Salut

En version de marche les lignes de codes font presque bien le travail. J’ai un problème lorsque je diminue le nombre de place dans une formation.

Dans le fichier « AF 2017 - test ter v1 » je modifie le nombre de place de la formation QZ18 de 6 à 5 et le résultat que tu trouves dans le fichier « AF 2017 - test ter v1 résultat » est complètement incompréhensible comme par exemple me créer deux formations QZ18.

Ce problème pour toi est dû à quoi ? Pour éviter ce problème je dois défussionner les ligne 5 à 10 (AF QZ158) puis supprimer la ligne 10 et enfin après avoir modifier le nombre de place de 6 à 5 lancer la macro pour le fusionnement. C’est un peut long mais ça marche.

Cordialement.

Salut

Une petite question sur le double clic que tu m'as mis. Je n'ai pas de problème sur son fonctionnement qui est nickel mais je voudrais savoir s'il n'est pas possible de créer un code qui en l'exécutant pourrait me créer soit un fichier dans lequel je trouverai tous les onglets des organismes d'appartenance (colonne O) des personnes saisie dans le fichier ou soit le faire dans le même fichier de travail. Concrètement c'est crée une procédure qui me ferait la même chose que le double clic mais pour toutes les personnes inscrites de préférence soit dans un autre fichier ou soit dans le même si c'est plus simple.

Cordialement.

Re salut

Je viens de m'apercevoir que si je lance le code pour fusionner les cellules j'ai un bug si par malheur je n'ai pas enlever un filtre automatique que j'aurai fait (ce site je fais beaucoup pour les saisies).

Peux tu me dire quel code je pourrais mettre au début de la macro fusionnement pour que les filtres automatiques soit enlever automatiquement ?

Cordialement.

Bonjour,

Help me please.

Dans mon fichier joint j’ai crée un bouton qui exécute la macro « Sub DetaillerLaColonneE() » me permettant d’enlever les fusions de la colonne E dans le même principe de ce qui a été fait pour les colonnes A, G et V.

Le problème c’est que la macro qui permet de refusionner les colonnes « Sub FusionsEtClassement() » ne fonction plus lorsque j’ai utilisé la macro « Sub DetaillerLaColonneE() ». Il tourne sans fin.

Pourtant ce code fonctionne très bien lorsque j’enlève le fusionnage des colonnes A, G et V. Est-ce qu’on peut m'apporter les corrections et me dire par la même occasion qu’est-ce qui ne va pas dans le code « Sub DetaillerLaColonneE() » ou ce qui n’est pas adapté dans le code « Sub FusionsEtClassement() ».

Merci par avance.

Bonjour

Nouvelle version

Bye !

Salut gmb,

Merci pour la correction. Je croyais que plus personne voulait me répondre

J'ai remarqué que tu as modifié la ligne de code "If tabloA(i, 5) = "" Then" par : "If tabloA(i, 1) = "" Then". Pour ma culture perso pourquoi avec (i,5) ça ne marché pas ?

Cordialement.

philippe.p@ a écrit :

pourquoi avec (i,5) ça ne marché pas ?

Parce que le rôle de cette boucle est de repérer les lignes où, à cause le la fusion les cellules de certaines lignes sont vides. A chaque tour de boucle, si la cellule est vide, cela veut dire que l’on est sur une ligne où, il y a des cellules que la fusion précédente a effacé et il faut y coller les données qui ne sont restées que sur la première des cellules anciennement fusionnées.

Mais si, avec ton bouton ‘’colonne E’’, tu as fais séparément cette opération, toutes lignes de cette colonne sont déjà remplies et la macro ne trouve plus de lignes à compléter.

Le (mauvais) résultat sera le même si avec la nouvelle version tu cliques sur le bouton ‘’Colonne A ‘’ puis sur le bouton ‘’Fusion et Classement’’

La macro a besoin d’une colonne défusionnée mais non complétée pour repérer les lignes où il y a des cellules vides à compléter avant de faire les classements.

OK ?

Après étude de ce que tu m'as dit dans ton dernier message en 1er lieu je ne comprenais pas. En effet lorsque j'enlevais la fusion de la colonne A avec une autre colonne (E, G ou V) la macro "fusion" fonctionnait ce qui n'était cohérent avec ce que tu m'expliquais. Alors j'ai essayé l'opération en enlevant UNIQUEMENT la fusion de la colonne A et là ton explication c'est trouvé juste la macro tournait sans fin.

Pour éviter cela j'ai modifié "If tabloA(i, 1) = "" Then" en "If tabloA(i, 2) = "" Then car pour la colonne B je n'enlèverai pas la fusion de cette colonne. J'ai testé et là pas de problème.

Question 1 : Est-ce que ma modification est judicieuse ?

Question 2 : Pourquoi avant la modification que j'ai effectué, ton code fonctionné si j'enlevais la fusion de A avec une autre colonne ? Pour moi je ne comprends pas la logique de fonctionnement de la macro dans ce cas.

Cordialement.

philippe.p@ a écrit :

Question 1 : Est-ce que ma modification est judicieuse ?

Oui puisque tu as mis un bouton pour défusionner les cellules de la colonne A.

Il faut, comme je te l'ai écrit que la macro teste les cellules d'une colonne pour savoir si elles sont vides ou pas.

Si elle trouve une cellule vide, cela veut dire qu'il y en a d'autres qui sont vides aussi sur la même ligne et il faut les compléter.

Mais si dans la colonne choisie, tu as déjà rempli toutes les lignes avec le bouton ''Colonne x'', elle croit qu'il en est de même pour toutes les cellules de toutes les lignes.

Il faut donc prendre une colonne où tu ne mettras pas de bouton ''Colonne x''

Si tu devais en mettre à toutes les colonnes, alors, il faudrait modifier autrement et tester toutes les cellules de toutes les colonnes susceptibles d'avoir été fusionnées : colonne A, B,C,D,...H et I.

Mais l'exécution de la macro prendrait plus de temps.

OK ?

Ok super l'explication donc j'ai bien fait de mettre la colonne B qui sera jamais défusionnée.

Cordialement

Bonjour,

Tout fonctionne bien dans les codes mais lorsque j'ai voulu donner le fichier à un collègue pour qu'il mette les formations qui le concernent le code bug.

J'ai juste laissé une ligne pour qu'il ait la mise en forme et lorsque je lance la fusion des lignes pour avoir (dans l'exemple) 9 lignes la macro me dit erreur d'exécution 13.

Est-ce que gmb ou un autre peut ma dire pourquoi j'ai ce problème et me le corriger ?

Cordialment.

Bonjour à tous,

Je relance ma question pour savoir si gmb qui a super bien travaillé pour concevoir cette macro ou un autre peut ma dire pourquoi est dû le problème énoncé précédemment et me le corriger si c'est possible ?

Cordialement.

Bonjour,

Je relance ma question...

Tu peux relancer, j'ai ouvert le fichier et tout de suite refermé.

Tu ne dis même pas quelles actions faire pour provoquer l'erreur, on n'est pas devins.

Pour info 'Type incompatible' c'est qu'il attend une chaine et tu lui fournis un numérique par exemple.

eric

Salut eriic,

Si tu ouvre le fichier et tu cliques sur le bouton "Fusion et classement" tu verras tout de suite l'erreur.

Cordialement.

Bonjour,

For iR = iRd To tabloB(iB, 9) - 1 + iRd

avec tabloB(iB, 9) = "NBRE DE PLACE" ça ne risque pas de fonctionner.

Il faudrait peut-être remplir avec des valeurs avant...

eric

Rechercher des sujets similaires à "copier insertion lignes fonction nombre"