Boucles VBA

Bonjour la communauté,

j'ai un problème auquel je ne trouve pas de solution, j'aimerais un coup de pouce.

J'ai dans ma feuille excel :

Une colonne en ("A") avec des valeurs en A3 et A4 et d'autres valeurs en A6 et A7 , A9 et A10 etc...

Deux colonne en ("S") et ("T").

L'idée serait de trouver A3 dans la colonne S et A4 dans la colonne T ou la valeur de A3 et A4 sont sur la même ligne dans les colonne S et T et d'incrémenter de 3 (A3) et (A4) a chaque fois que les valeurs sont trouvées dans les deux colonnes.

J'ai tenté sans succès avec une boucle do/loop sur les colonnes S et T et for next pour incrémenter de 3 les cellules en A3 et A4 / avec deux for next imbriqués.

Fakerr.

Bonjour Fakerr,

Je te propose ce fichier Excel :

5exo-fakerr.xlsm (13.41 Ko)

Ctrl e ➯ travail effectué


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

NB : j'espère que tu m'en voudras pas d'avoir utilisé une seule boucle For .. Next !

dhany

Merci dhany pour ta réponse et ta rapidité,

j'ai omis quelque chose et je sais pas si cela change le code, mais avec les deux valeurs trouvées en colonne S et T.

je dois extraire la valeur en U (c'est la valeur que je recherche) et la copier en colonne B en face de la valeur A3 .

Si, bien sûr que le code VBA doit être modifié ! (mais pas de beaucoup)

Nouvelle version du fichier Excel :

4exo-fakerr.xlsm (13.56 Ko)

dhany

le code ne m'affiche pas de valeur en B après exécution (celle contenue en colonne U)

je peux vous joindre le tableau ?

Si, ça affiche une valeur en B quand il y a l'égalité dont tu avais parlé ➯ 1 en B3 et 5 en B15 ; ça n'affiche rien dans les autres cas puisqu'il n'y a pas égalité ; serait-ce que tu veux afficher la valeur de U en B dans tous les cas, indépendamment de l'égalité ? si oui :

2exo-fakerr.xlsm (13.55 Ko)

Si c'est ok, n'oublie pas de passer le sujet en résolu ; sinon, tu peux bien sûr joindre ton fichier Excel (utilises le bouton « Ajouter des fichiers » situé sous la fenêtre d'édition de ton post).

dhany

je pense que voir le tableau sera plus parlant

20tabb.xlsm (35.56 Ko)

Oui, effectivement : ton tableau est bien plus causant !

C'que j't'ai proposé avant pouvait pas marcher, car d'après ton énoncé, j'pensais qu'si y'avait égalité c'était forcément sur la même ligne que celle de la valeur en colonne A ! comme c'est pas l'cas, ton exercice est entièrement différent : j'ai dû l'refaire entièrement selon la nouveauté !

De plus, j'ai mis bien plus de temps qu'prévu car tu as en colonne A plusieurs valeurs avec un espace après (c'que j'avais pas vu) ! c'est à cause de ça que l'égalité n'était pas trouvée, car par exemple : "MIL " <> "MIL" ! mon code VBA corrige automatiquement cela.

6tabb.xlsm (37.64 Ko)

Ctrl e ➯ travail effectué

dhany

Merci (beaucoup) dhany,

pour le temps que tu as pris pour ce code

cependant toutes les valeurs ne sont pas copiées, il y'a des trous dans la colonne B.

(j'ai essayé de déchiffré) pour réparer ça mais ...

Bonjour,

par formule. En B3 :

=INDEX(DECALER($U$1;EQUIV(A3;S:S;0)-1;;NB.SI(S:S;A3));EQUIV(A4;DECALER($T$1;EQUIV(A3;S:S;0)-1;;NB.SI(S:S;A3));0))

sélectionner B3:B5 et tirer vers le bas.

#N/A si non trouvé, ajouter sierreur(formule;"") si tu préfères un vide.

Supprimer les espaces en trop dans A pour trouver les valeurs bien sûr.

Sélectionner A, Ctrl+h, remplacer 'espace' par 'rien' (vide)

eric

Bonjour fakerr,

Tu a écrit :

cependant toutes les valeurs ne sont pas copiées, il y'a des trous dans la colonne B.

D'après moi, pour tes 3 colonnes S, T, U y'a l'même problème que pour A : des espaces à droite de certaines valeurs !

Nouvelle version du fichier :

3tabb.xlsm (39.64 Ko)

Fais d'abord Ctrl n ; puis ensuite, fais Ctrl e


Si ça ne marche toujours pas : envoie ton fichier où se produisent ces anomalies ; pour que je n'ai pas à chercher, indique-moi la position des cellules pour lesquelles il y a des anomalies (pas toutes, trois à cinq suffiront ! ).

dhany

C'est parfait Dhany !

Je te remercie beaucoup pour ton aide, ça va m'aider à avancer dans mon projet.

Je voulais te demander une dernière chose : j'apprends vba sur le tas en fonction de ce que je veux réaliser et tu aurais des conseils pour m'améliorer (lecture, etc... ?) .

Un grand merci et (je n'oublie pas de de cliquer sur [V])

J'suis vraiment ravi qu'ça marche !!! un grand merci pour le et pour avoir passé le sujet en résolu !

Pour VBA, tu peux faire une recherche google avec "cours VBA gratuit" ; dans les résultats, tu as par exemple :

screen

(c'est un site super sympa ! j'crois qu'tu connais déjà !)

dhany

Rechercher des sujets similaires à "boucles vba"