• Initiateur de la discussion Initiateur de la discussion serge
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

serge

Guest
Bonjour à tous.
Est-il possible de saisir une valeur dans une cellule (mettons A1) et de l'obliger à aller se mettre en B1 si B1 est vide, sinon en B2, etc. etc. Le but étant de saisir une donnée mensuelle et que celle-ci aille sagement se ranger à sa place sans écraser les copines des mois précédents.
Merci beaucoup de vos recherches.
 
salut Fredennes et tt le monde


Pas facile, ta question !…


Cette macro est dite événementielle ( + de détail : voir site de Laurent Longre):

L’événement ici est la sélection d’une cellule. Pour sélectionner ce genre de macro, il te faut aller dans l’éditeur VBA de la feuille en cours, i*tu sélectionne Worksheet dans la liste déroulante de gauche sélection_change est inscrit par défaut (regarde les autres possibilités dans la liste de droite°


Dans un premier temps, on limite l’action de l’événement à une zone, ici A1, car sinon, la macro se déclencherait chaque fois que tu cliques

Le pseudo code pourrait s’écrire
Si l’intersection de la cible et la de la cellule « A1 » est vide alors fin du process

A noter que then : end interromps toutes les macros en cours
Then : exit sub sort de la macro et éventuellement continue la macro mère


N° de la 1° ligne vide :
Syntaxe tirée du site d’Eric Renaud (site à consulter d’urgence pour les amateurs de VBA)

Dans l’objet columns 1 (1=A en affichage L1C1) trouve (find) la valeur vide après la cellule D65536 (après D65536 on a D1)) en cherchant par rangée (xlbyrows). Appliquer la propriété Row (rangée)

Pour plus de détails consultes l’aide microsoft de Find… Tu peux commencer ta recherche à la hauteur que tu veux

IL y a d’autre formules toutes aussi valables pour trouver la 1° ligne égale à X ou vide que tu verras souvent sur le forum

Une fois que tu as le numéro de la ligne j’ai employé cells(lig,col) mais tu peux employer range(« D » &lig)

On serait tenter de marquer range’(« A1 »).value mais l’objet range possède la propriété value par défaut.


Voilà, voilà. Cette macro est symbolique pour moi car ce pb a été le premier que j’avais essayé de résoudre par macro il y a quelques 3,5 ans… Le listing n’était pas le m^me avec des boucles usine-à-gaz et des copy paste pas piqués des vers…. Tout ça pour te dire que ce qu’un imbécile à pu faire, quelqu’un de normalement constitué etc .

Comme tu veux progresser (fais gaffe : vba n’est pas toujours LA solution : tant que tu peux utiliser les fonctions excel, évites vba) tu trouves sur la toile des cours super .
Tu as Bien sûr XLD, Le site le + pédagogique que j’ai trouvé (avis perso) est info-3000.com .
sur ce forum ou sur les sites : télécharges, vois ce que ça donne ; Relis en pas à pas en utilisant l’espion (menu déboguage) et utilises aussi l’aide Microsoft qui souvent précieuse.

Amicalement
Michel


Pas facile, ta question !…


Cette macro est dite événementielle ( + de détail : voir site de Laurent Longre):

L’événement ici est la sélection d’une cellule. Pour sélectionner ce genre de macro, il te faut aller dans l’éditeur VBA de la feuille en cours, i*tu sélectionne Worksheet dans la liste déroulante de gauche sélection_change est inscrit par défaut (regarde les autres possibilités dans la liste de droite°


Dans un premier temps, on limite l’action de l’événement à une zone, ici A1, car sinon, la macro se déclencherait chaque fois que tu cliques

Le pseudo code pourrait s’écrire
Si l’intersection de la cible et la de la cellule « A1 » est vide alors fin du process

A noter que then : end interromps toutes les macros en cours
Then : exit sub sort de la macro et éventuellement continue la macro mère


N° de la 1° ligne vide :
Syntaxe tirée du site d’Eric Renaud (site à consulter d’urgence pour les amateurs de VBA)

Dans l’objet columns 1 (1=A en affichage L1C1) trouve (find) la valeur vide après la cellule D65536 (après D65536 on a D1)) en cherchant par rangée (xlbyrows). Appliquer la propriété Row (rangée)

Pour plus de détails consultes l’aide microsoft de Find… Tu peux commencer ta recherche à la hauteur que tu veux

IL y a d’autre formules toutes aussi valables pour trouver la 1° ligne égale à X ou vide que tu verras souvent sur le forum

Une fois que tu as le numéro de la ligne j’ai employé cells(lig,col) mais tu peux employer range(« D » &lig)

On serait tenter de marquer range’(« A1 »).value mais l’objet range possède la propriété value par défaut.


Voilà, voilà. Cette macro est symbolique pour moi car ce pb a été le premier que j’avais essayé de résoudre par macro il y a quelques 3,5 ans… Le listing n’était pas le m^me avec des boucles usine-à-gaz et des copy paste pas piqués des vers…. Tout ça pour te dire que ce qu’un imbécile à pu faire, quelqu’un de normalement constitué etc .

Comme tu veux progresser (fais gaffe : vba n’est pas toujours LA solution : tant que tu peux utiliser les fonctions excel, évites vba) tu trouves sur la toile des cours super .
Tu as Bien sûr XLD, Le site le + pédagogique que j’ai trouvé (avis perso) est info-3000.com .
sur ce forum ou sur les sites : télécharges, vois ce que ça donne ; Relis en pas à pas en utilisant l’espion (menu déboguage) et utilises aussi l’aide Microsoft qui souvent précieuse.

Amicalement
Michel
v
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
1
Affichages
1 K
Retour