Modification formule récup sous conditions

Bonjour à tous

je reviens vers vous pour un petit coup de pouce , concernant ma formule de récup, que j,ai trouvé sur votre site et que j'ai modifié sur ma feuille. Par contre il y a des conditions à mettre, mais pas moyen d'y arriver, j'explique tout dans la pièce jointe

Merci d'avance pour votre aide

24test.xlsm (30.03 Ko)

Bonjour safwaty,

Je te retourne ton fichier modifié :

17test.xlsm (29.29 Ko)

À l'ouverture du fichier, tu es sur la 2ème feuille "B" ; regarde les données que j'ai choisies pour la démo, et ne les change pas ! note bien quelles sont les 4 cellules dont le contenu commence par un point : N5 ; O4 ; V4 ; W5 ; ce sont donc ces 4 cellules qui ne seront pas récupérées, et dont les cellules de destination en feuille "A" resteront vides.

Va sur la 1ère feuille "A" ; note bien qu'en lignes 4 et 5, toutes les cellules sont vides SAUF G4 et G5 ; Ctrl r (ou clic sur ton bouton "Récup") ➯ travail effectué ; vérifie très soigneusement que tu as bien le résultat attendu !

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me donner ton avis.

dhany

Bonjour Dhany

Merci pour ton aide,le macro ça fonctionne très bien.

par contre le seul soucis ce n'est pas la feuille B a modifier avec le point mais la feuille A est ce que cela est possible de fonctionner;

cela veut dire que quand je modifie la cellule concernée de la feuille A en commençant avec point (.) ça empêche la récupération de la feuille B.

merci pour tout ce temps consacrée à m'aider

Voici la nouvelle version :

23test.xlsm (29.36 Ko)

Sur la feuille "B", note bien que j'ai enlevé les points des 4 données précédentes ; va sur la feuille "A" ; il y a une donnée dans chacune des 8 cases violettes, et seules les 4 qui ont un point devant ne seront pas écrasées par la copie ; Ctrl r ; et ça marche tout aussi bien avec uniquement un caractère point (.) dans une des cellules violettes.

Je te laisse tout vérifier, et me donner ton avis.

NB : dans le code VBA, j'ai modifié uniquement la 1ère sub privée CpyCond() ; tout le reste est identique ;

j'ai choisi le nom CpyCond comme abréviation de "Copy Conditionnelle", car la copie est selon un test.

dhany

Un grand merci cela fonctionne très bien

Re

petite question

comment relier Private Sub plus Sub sur 1bouton

pour que je puisse modifier sur ma feuille finale

merci

11test-1.xlsm (28.81 Ko)

Voici le fichier Excel :

16test-1.xlsm (28.97 Ko)

Tu verras qu'au bouton "Récup", j'ai simplement affecté la macro Récup()

Il ne faut pas lui affecter la sub CpyCond() car c'est une sub privée qui ne doit être appelée que par Récup()

donc quand ton bouton "Récup" appelle la macro Récup(), ça fait bien ce qu'il faut !

autre façon de voir : la sub CpyCond() est appelée indirectement par ton bouton "Récup" via la macro Récup()

dhany

Dhany

Excuse moi j'ai encore trouvé un problème, lorsque j'efface tout ce qui se trouve dans la cellule( M, N, V, W) je ne récupère rien du tout du fichier B

merci

Tu as écrit : « je ne récupère rien du tout du fichier B » ... mais j'ai compris que tu voulais parler de la feuille B

« lorsque j'efface tout ce qui se trouve dans la cellule (M, N, V, W) » : de la feuille A, n'est-ce pas ? ou de la feuille B ?

Lorsque j'efface tout ce qui se trouve dans la cellule (M, N, V, W) » : de la feuille A je ne récupère rien de la feuille B

Mais si je note quelque chose (chiffre, lettres ) je récupère ce qui est noté sur la feuille B.

ok, j'ai vu quel est le problème ; je vais l'arranger, mais d'abord, j'ai aussi besoin d'un renseignement qui n'est pas lié à ça (et pas seulement pour les cellules violettes) :

si une cellule de la feuille B est vide, que faut-il faire en feuille A ? laisser la valeur en feuille A inchangée ou l'effacer ?

laisser la valeur en feuille A inchangée

merci

Tu a écrit :

laisser la valeur en feuille A inchangée

d'accord, mais le code VBA doit être beaucoup modifié ! je vais te préparer ça tout de suite.

Voici la nouvelle version du fichier :

13test-2.xlsm (29.83 Ko)

Sur la feuille "B" ; note bien qu'en U5, la cellule bleue est vide ; idem pour la cellule violette en V5 ; donc selon ta demande, la destination en feuille "A" de ces 2 cellules vides ne devra pas être remplacée par rien : ça devra rester inchangé.

Va sur la feuille "A" ; note bien qu'en U5 il y a "abc", et en V5 il y a "def" ; ce sont ces 2 cellules de destination qui ne doivent pas être remplacées par rien ; donc après exécution de la macro, il faut qu'il y aie toujours "abc" et "def".

Ctrl r ➯ travail effectué ; à toi de tout vérifier !


Petit bonus supplémentaire : fais Ctrl c (c comme la touche Clear des calculatrices) ➯ en feuille "A" ça efface toutes les valeurs ; ça peut être utile pour des tests (et peut-être aussi en pratique).

Le Ctrl c du Copier / Coller ne marche plus ; utiliser à la place Ctrl Inser (Inser = touche Insertion)

juste pour info, il y a aussi Maj Suppr pour Couper et Maj Inser pour Coller (au lieu de Ctrl x et Ctrl v)

et c'est de base dans Windows, c'est pas moi qui l'ai rajouté !


Alt F11 pour voir le code VBA ; tu verras que j'ai dû beaucoup le modifier !

Remarque bien, entre autres, que pour un groupe de cellules, je n'utilise plus .Copy / .PasteSpecial : à cause du test « si la cellule est vide, ne rien faire pour laisser la destination inchangée », je fais le job individuellement pour chaque cellulle ; aussi, j'ai créé une sub CpyCond1() et renommé la sub CpyCond() en CpyCond2().

Bien sûr, sans le .Copy / .PasteSpecial, Application.CutCopyMode = False est devenu inutile (donc je l'ai supprimé) !

Tu pourras voir aussi que pour les 2 subs privées, le 2ème paramètre est Optional (donc facultatif) ; j'ai fait cela pour permettre un appel plus simple quand les 2 paramètres sont identiques : au lieu de CpyCondA 19, 19 je mets CpyCondA 19 et dans la sub, le 2ème paramètre prendra la valeur du 1er paramètre.


Merci pour les ! et bonne chance pour comprendre tout le code VBA !

Si besoin, n'hésite pas à demander une autre adaptation ou plus d'infos.

dhany

1000 merci cela fonctionne très bien

Merci ... pour tes 1000 remerciements ! et aussi pour les !

Rechercher des sujets similaires à "modification formule recup conditions"