Boucle pour chercher une valeur en colonne

Bonjour à tous,

J'ai une idée de macro mais je n'arrive pas à la faire

en gros il faudrait une macro qui vérifie les cellules B8 à M8 jusqu'à trouver la valeur "ok"

dés qu'elle l'a trouvé elle se réfère au nom de la colonne (au mois correspondant) et va se positionner dans la colonne du mois d'avant (si on est en mai, se positionner sur avril) dans le tableau au dessus (qui s'appelle Paris) pour faire plusieurs choses:

- supprimer la valeur de la ligne "forecast" du mois précedent (donc du moi de mars)

- aller chercher la valeur de la ligne "WC" correspondant au mois sélectionné (avril) dans le tableau "Paris" de la page "calcules pour graphes" et la coller dans la cellules correspondante dans la page "Graph" ligne "WC" (ici au mois d'avril).

Est-ce que vous pouvez m'aider svp c'est urgent

merci d'avance, Jawst

160aop-test.xlsm (36.25 Ko)

Bonsoir,

un début de réponse :

Sub Transfert()
    Dim Plage_de_recherche As Range ' correspond à la plage de recherche
    Dim Valeur_cherchée As String ' correspond à ce que l'on cherche
    Dim Trouvé As Range ' c'est le résultat de la recherche
    Dim La_colonne As Integer ' colonne du mois où il y a "ok"

    Valeur_cherchée = "ok" ' définition de ce que l'on cherche
    Set Plage_de_recherche = Sheets("graph").Range("B8:M8") ' définition de la plage de recherche
    Set Trouvé = Plage_de_recherche.Find(what:=Valeur_cherchée, LookIn:=xlValues) ' on effectue la recherche : xlvalues car ok est le résultat d'une formule
    If Trouvé Is Nothing Then ' si Trouvé = rien c'est qu'on a rien trouvé...
        ' ce qu'il y a à faire si on ne trouve pas "OK"
    Else
        ' ce qu'il faut faire si on trouve
    End If
End Sub

Ceci vous permet de trouver la cellule où se trouve le mot "ok".

@ bientôt

LouReeD

Salut LouReeD,

merci pour ta macro elle marche parfaitement mais je n'arrive pas a trouver la colonne ou est le mot ok :/

Jawst

Bonjour,

oui petite précision :

la variable Trouvé est un Range donc un "objet cellule" ou plage de cellule, donc pour connaître le numéro de sa colonne il suffit d'en demander la propriété :

La_colonne = Trouvé.Column

La_colonne étant déclarée en Integer car il n'y a que 12 mois, mais maintenant avec les grandes feuilles d'Excel je le déclare en LONG

Dim La_colonne as Long

La_colonne = Trouvé.Column

Pour le mois de mai La_colonne = 6 car il y a une colonne d'entête sur votre tableau.

Pour effacer la valeur de la cellule du mois de mars qui se trouve sur la ligne 3, il suffit alors de faire :

Cells(3,La_colonne -2).value = ""

Mais attention aux "impossibilités" car si le mois est janvier, alors on aura 2-2 = 0 et une colonne 0 n'existe pas sous Excel, il faudra prévoir une gestion de ce cas, car le fait de déplacer le tableau vers la droite ne suffira pas car on ira effacé une donnée d'entête si le mois est Février... Bref du pain sur la planche !

@ bientôt

LouReeD

Merci LooReed

ca m'a l'air bien compliqué ^^ je vais bosser dessus ce week-end et je reviendrais vers toi si je n'y arrive pas

merci en tout cas

Bonjour à tous !

27 mai au 19 juin...

à priori tout va bien !

@ bientôt

LouReeD

Salut Loureed,

Excuse moi de ne pas t'avoir répondu :$

Oui ca marche merci beaucoup

Bonjour,

merci pour le retour !

De mon coté je n'avais qu'à regarder si la question était cochée résolue ou pas !

@ bientôt

LouReeD

Rechercher des sujets similaires à "boucle chercher valeur colonne"