Copier cellules non comprise dans une plage (casiers utilisés/libres)

Bonjour.

Après avoir cherché et essayé différentes macro, je me soumet à votre aide pour en apprendre encore plus et pour solutionner mon problème.

J'ai une liste principale de casiers dans la colonne R (R2:R309)

601

602

603

604...

J'ai une colonne T (T2:T309) où apparaissent déjà des casiers utilisés grâce au filtre avancé.

Je souhaite dans la colonne U (U2:U309) faire apparaître les casiers non utilisés selon la liste principale (R).

Merci par avance pour votre réponse.

Bonsoir maymeric,

Mettez la formule suivante en U2, à étendre vers le bas tant que nécessaire

=SI(T2="";R2;"")

Génial pour cette solution simple.

Dans mon imaginaire, l'idée était de ne pas avoir de cases vides (trous) et une liste plus courte et continue (pas en phase/face avec la colonne T).

(T) (U)

601 604

602 605

603 606

608 607

610 609

611

612

est-ce possible?

Bonsoir maymeric,

l'idée était de ne pas avoir de cases vides (trous) et une liste plus courte et continue

Il aurait été judicieux d'en parler avant...

Toujours en U2

=SI(T2="";LIGNE();"")

Là ou vous voulez faire apparaitre votre liste

=SI(ESTERREUR(PETITE.VALEUR(U2:U309;1));"";INDIRECT("R"&PETITE.VALEUR(U2:U309;1);1))

Vous prendrez soin d'incrémenter le ";1" de 1 à chaque ligne dans la fonction petite.valeur() pour avoir la valeur suivante

Il y a plus simple :

Si vous collez votre formule en ligne 5:

=SI(ESTERREUR(PETITE.VALEUR(U2:U309;ligne()-4));"";INDIRECT("R"&PETITE.VALEUR(U2:U309;1);ligne()-4))

Merci beaucoup pour votre réponse et pour votre réactivité.

Je vais essayer

J'ai besoin d'aide et pour ne pas utiliser trop de votre temps et pour aider d'autres sur le forum, je vous transmet le fichier joint en espérant que vous pourrez renvoyer un fichier fonctionnel. Merci.

Bonjour maymeric,

Voyez si la solution proposée dans le fichier joint vous convient

Super merci. Je vais pouvoir continuer la construction du fichier.

Espérant que mon problème posé, que vous avez solutionné serve à d'autres.

Bonne journée.

Problème, la solution ne fonctionne pas lorsque la liste utilisée est continue avec un écart plus important.

Dans les casiers utilisés, l'exemple fonctionne pour des nombres proches tels que 301 302 303...mais pas dans le cas où par exemple le 601 est utilisé (303 304 327 403 505 601 660...).

Ci joint le fichier avec la suite d'exemple.

Bonjour maymeric,

comme ceci alors

=SI(NB.SI(T:T;R2)>0;"";LIGNE())

je salue au passage njhub

C'est toujours difficile de résoudre un sujet sans un fichier posté !

C'est nickel. Ca fonctionne merci.

Tout le mérite revient à njhub qui a travaillé sans filet (sans fichier).

Bonjour maymeric,

Problème, la solution ne fonctionne pas lorsque la liste utilisée est continue avec un écart plus important.

En fait la solution proposée fonctionne très bien lorsque les casiers utilisés colonne T sont en regard des n° de casiers colonne R, et ne fonctionne pas lorsque les casiers utilisés colonne T ne sont pas en regard des n° de casiers colonne R, ça ne fonctionneras pas non plus si vous n'avez pas un minimum de "discipline" càd en mettant vos valeurs au hasard dans des colonnes inutilisées pendant la conception, qui elle suit vos demandes successives, puisque vous avez été incapable de donner l'intégralité de vos doléances dans votre post initial.

Un tableur n'a pas de structure mentale, c'est à vous de vous adapter aux contraintes, ou de donner les éléments permettant de déterminer les éléments à prendre en compte sans quoi vous aurez toujours beau jeu de dire que ça ne fonctionne pas...

Merci de nous aider à vous aider

Bjr Steelson

Merci à tout ceux qui ont contribué à la résolution !

Rechercher des sujets similaires à "copier comprise plage casiers utilises libres"