Je me permets de poster pour la première fois sur ce forum car ça fait quelques jours que je bloque sur un problème au niveau d’une fonction macro.
J’aimerai copier/coller une colonne d’une feuille excel sur une autre. Jusque là pas de gros problèmes. Cependant, au sein de cette colonne, il y a des cellules vides que je veux copier également. Or lorsqu’on utilise les fonctions classiques de sélection totale, toute la colonne du document est sélectionnée. Moi j’aimerai pouvoir m’arrêter.
Plus clairement, par rapport au document joint, j’aimerai copier à partir de la cellule B62 à la fin du tableau soit la cellule B153 (cette dernière peut évoluer donc on ne peut pas la prendre comme constante).
J’ai pensé à une structure de code en SI:
faire un balayage de la colonne B
Si la cellule est pleine copier vers l’autre feuille case A2 et ainsi de suite
Sinon si la cellule est vide tester la cellule suivante
si la cellule suivante est vide tester celle d’après (faire cela 3 fois par exemple)
si cellule n+3 est pleine copier les cases vides précédentes ainsi que n+3
et ainsi de suite
J’espère avoir été claire sinon n’hésitez pas à me demander plus de précisions.
En vous remerciant par avance pour votre future aide
Pour déterminer la dernière à traiter (153) j’ai mis en « A154 » la donnée « Fin »
Pas d’autre choix car dans cette colonne après cette ligne il y a d’autres données
Pour s’affranchir de cette balise il faudrait libérer ces 2 colonnes de tout autre donnée qui suivent
Un bouton « Traitement »
Testes et dis moi
Fichier de type « .xlsm » nécessaire au fonctionnement VBA à maintenir impérativement
Excusez-moi, ma demande est assez particulière c’est pour cela que j’avais préciser de ne pas hésitez à me demander plus de précisions.
Après j’ai égelement précisé cela :
Sinon si la cellule est vide tester la cellule suivante
si la cellule suivante est vide tester celle d’après (faire cela 3 fois par exemple) si cellule n+3 est pleine copier les cases vides précédentes ainsi que n+3
Soit copier toutes les cellules vides précédentes la cellule pleine.
Pourquoi alors ne pas faire un copier coller de toutes les cellules de « B72 » à « B153 » vers la colonne cible à partir de la cellule « A2 » inutile d utiliser un traitement puisque toutes doivent être recopiées y compris les vides
Il y a quelques choses que je ne saisis dans ton attente il faut être plus claire si tu veux que l on y réponde correctement
En fait le but est de générer une feuille qui reprend les données qui nous intéressent de la première feuille. Cela sera utilisé par plusieurs personnes et pour éviter des copier/coller longs je mets le tout en macro.
Je me permets de vous embêter encore un peu afin de comprendre ce que vous avez fait dans le détail. De ce fait pouvez vous m’expliquer les étapes de votre macro car quand j’essayais la fonction if elle ne fonctionnait pas.
Alors, je vais peut être posée une question bête mais à aucun moment vous nommez dans la macro la feuille d’origine. Comment cela se fait?
Quand j’essaye d’adapter la macro sur mon fichier d’origine cela ne fonctionne pas et je me demande si cela n’est pas causé par l’appel des feuilles
Dans la mesure où le bouton qui active cette macro se trouve dans la feuille d origine celle-ci est donc celle active au moment où on clique dessus
Dans un traitement si aucun onglet n est cité dans une ligne de code c est celui actif qui est considéré
Voilà pourquoi dans le traitement il est fait nul part mention de la feuille d origine etant donc celle active au clique du bouton
J espère avoir été explicite sur ce sujet
Dis moi
D’accord je comprends
Merci beaucoup pour votre aide
Avec quelques adaptations ça marche super bien juste la contrainte de placer « FIN » mais je savait qu’il fallait que je mettes en place quelque chose si je ne voulais pas modifier toute la structure de mon document.
Par pur hasard, est-ce que vous savez s’il est possible à partir d’une macro de transformer une feuille créée en fichier .dat?
Non pas obligatoirement il suffit simplement de libérer la colonne des données sources c’est à dire n’avoir que celles à traiter et rien d’autre après sinon nécessité de mettre cette balise pour déterminer la dernière ligne du traitement
Pour l’enregistrement en .dat je ne connais pas
Ces types d’extensions sont le fruit de fichiers aux données binaires générés par des applications particulières
Je ne pense pas qu’Excel est prévu des possibilités dans ce domaine
Maintenant mes connaissances en la matières ont leurs limites donc ce n’est que mon opinion
A rechercher sur la toile des sites qui traitent du sujet