Copie de colonnes avec fct personnalisé VBA sans cellules vides

Fermé
Tomy.G Messages postés 2 Date d'inscription vendredi 24 avril 2015 Statut Membre Dernière intervention 24 avril 2015 - 24 avril 2015 à 12:02
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 24 avril 2015 à 19:09
Bonjour à tous,
Ceci est mon premier post sur ce forum et j'espère être le plus compréhensible possible.
Je travaille sur un fichier excel 2003 depuis peu et connais très peu l'étendue de son language, j'ai réussi gràce à votre forum à surmonter de nombreux problèmes et je vous en remercie. Mais me voici confronté à un problème concernant une fonction VBA.
J'arrive à modifier quelques fonctions mais pas encore à en créer et j'espère que vous pourrez m'aider à solutionner mon problème.

Dans une feuille, je souhaiterais y integrer une fonction VBA me permettant de copier des données situées dans les colonnes A,B,C,D,E(A2:A100,B2:B100,C2:C100,D2:D100,E2:E100) vers les colonnes respectives G,H,I,J,K situé dans la même feuille. Cette fonction me permettrais de supprimer toutes les cases vides compris dans les plages de départs ( Possible cellules vides avant mes premières données et entre mes données)

Je ne sais pas si cela est possible mais je souhaite y intégrer une fonction sous forme "Fonction personnalisé", afin de pouvoir l'utiliser sans macro. Intégrer un code VBA dans un Module, aller la chercher dans "Fonction"/ Fonction personnalisé puis renseigner ma plage de départs puis ma plage d'arrivée. ?

J'ai préalablement regarder de nombreux cas similaires cela est possible mais par l'intermédiaire d'une macro.

Je serait vraiment reconnaissant si quelqu'un avait la réponse à mon problème.
En attente de vous lire je vous souhaite une bonne journée.

Cordialement
Tom
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 24/04/2015 à 13:19
Bonjour,

1) La réponse n'est pas négative mais ATTENTION : une fonction personnalisée ne peut agir que dans la ou les cellules dans laquelle elle est écrite. Dans ton cas il faudrait ecrire une fonction matricielle.
2) On ne peut pas utiliser une fonction personnalisée, sans accepter l'exécution des macro.
3) Veux-tu éliminer les cellules vides dans chaque colonne une à une ou uniquement les lignes où toutes les cellules sont vides ???
Dans ce dernier cas, pas besoin de VBA, un simple tri suffit
Cordialement
Patrice
0
Tomy.G Messages postés 2 Date d'inscription vendredi 24 avril 2015 Statut Membre Dernière intervention 24 avril 2015
24 avril 2015 à 13:55
Bonjour Patrice je me disais que si j'avais une fonction personnalisé je pourrais la répéter pour chaque colonne dont j'ai besoin, Je ne suis pas contre l'exécution des macro mais comme j'ai 40 feuilles excel je souhaitais rentrer les fonctions dans chaqu'une d'elle une fois puis ne plus m'en occuper, je voulais eviter le bouton affecter à la macro. Pour ta 3 eme question, j'adorerais supprimer toutes les cellules vides de la plage de départ. Pense tu pouvoir faire quelque chose car j'ai beau chercher pas moyen de trouver cela. Dans tous les cas je te remercie Patrice.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
24 avril 2015 à 18:56
Re,

Voici une fonction matricielle qui élimine les lignes vides :
https://www.cjoint.com/c/EDytjC9IyCL
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 240
24 avril 2015 à 19:09
Bonjour,

comme dit Patrice, ce n'est pas impossible (d'ailleurs il te l'a faite), mais tu vas te compliquer singulièrement la vie si ton nombre de données évolue.
Les lignes non prévues ne s'afficheront pas (logique), et étendre une formule matricielle validée sur une plage ne se fait pas facilement (essaie d'ajouter 2 lignes et tu verras...)
Un Sub qui se rafraichit avec un bouton ou automatiquement sur activation de la feuille (à condition que ces cellules ne soient pas utilisées par une autre feuille) serait sans doute plus simple et plus sécure à l'utilisation.

eric
0