Copier coller une colonne avec cellule vide mais pas que

Bonjour à tous,

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

Cordialement
Isa
exemple simple pour manip.xlsx (12,4 Ko)

Bonjour

Ma proposition ci-jointe

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

exemple simple pour manip.xlsm (23,3 Ko)

Je vous remercie de votre retour rapide.

Cependant, dans votre solution les cellules vides ne sont pas copiées. Or j’ai besoin qu’elles soient présentes.

Ce n est pas ce que tu mentionnes ici :

  • 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 est vide on passe à la suivante c est ce que tu as écrit

Il faudrait être plus claire si tu veux que l on réponde correctement à ton besoin !!!

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

Essaies avec cette nouvelle version si j’ai bien compris ce que tu souhaites
Pas certain car je reste très perplexe sur ta demande

Testes et dis moi

exemple simple pour manip.xlsm (23,7 Ko)

C’est exactement ça ! Merci beaucoup

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.

Ravi finalement d’avoir correctement répondu à ton besoin

Ci-joint ton fichier avec les commentaires explicatifs dans le code

A ta dispositions pour des compléments éventuels si nécessaire

exemple simple pour manip.xlsm (24,0 Ko)

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?

Promis c’est ma dernière question

Merci pour cette réponse

« bien juste la contrainte de placer « FIN » »

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

D’accord
Merci pour tout

En vous souhaitant une bonne continuation

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.