Cellule trouvée avec find à intégrer dans boucle

Signaler
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012
-
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012
-
Salut à tous,

Je recherche la cellule qui contient ma "date_debut", je la nomme "x" et je souhaite utiliser cette cellule dans ma boucle for each. Seulement je ne vois pas comment intégrer mon x dans le range de ma boucle :s.

Je vous envoie mon code, y a-t-il quelqu'un qui peut me filer un coup de main^^

A très vite

Medo

sub ex () 

date_debut = InputBox("date début", "", "04/01/2011")

Dim donnée As Date
donnée = date_debut
On Error Resume Next
x = [A1:A1000].Find(What:=donnée, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address

For Each a In .Range(x, ":A54")
... 
next a

end sub

8 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour
puisque x est une chaîne de caracrère (adresse), c'est dinc :

For Each a In Range(x & ":A10")


Mais :
1) déclare donc tes variables !
Dim x As String, a As Range
2) que vient faire le signe . (sans bloc with) dans
For Each a In .Range(x, ":A54")


?

Il faut :
- soit l'enlever (et tu te réfères alors à la feuille active)
- soit le faire précéder de la l'objet feuille ( sheets("feuil...").range ...
- soit mettre tout cela dans un bloc with !

___________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

Pour compléter je voudrais démarrer ma boucle en cellule x jusqu'à la A54 par exemple!

Merci d'avance pour vos réponses
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Je te propose le code suivant
Dim adresse As String
adresse = Replace(x, "$", "")
  For Each a In x.Range(adresse & ":A54")
   MsgBox a
  Next


Note que x doit être de type range genre :

Dim x As Range

et peut-être

Dim x As Range
...
...
set x = [A1:A1000].Find(What:=donnée, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address

Mais g pas testé.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour, 4u4me4us
il n'est pas nécessaire de transformer l'adresse. VBA comprend l'adresse, telle qu'elle est.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
A, autant pour moi donc,
  For Each a In x.Range(x.adresse & ":A54")
   MsgBox a
  Next


J'avais pourtant rafraichi la page avant d’envoyer le message mais les réponses n'était pas affiché.

Bon...pas grave.
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

Merci pour ces indications je progresse un peu!
Je souhaite partir de cette cellule trouvée et descendre d'une cellule à chaque fois que la cellule contient la "date_debut"et afficher des résultats qui sont calculer par ma formule "formule". Malheureusement rien ne s'affiche, quelqu'un voit pourquoi?

Range(x).Activate
i=0
redim formule (1 to 50)
For Each a In x.Range(x.adresse & ":A100")
        ActiveCell.Offset(1, 0).Select
        If date_debut = ActiveCell Then
        i = i + 1
        a = ActiveCell.Offset(0, 6).Value
        b = ActiveCell.Offset(0, 2).Value
   
        formule(i) = form(a,b)
        
        MsgBox ("résultat " & formule(i) & x) 'où x est une cellule 
        
       End If

     
    Next a
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Tu es déjà dans un question autre que celle objet de la présente discussion !
(un sujet par discussion est une discipline nécessaire).
On ne traite pas ici la progression d'une appli mais Une difficulté spécifique et isolée.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

dac merci à tous pour vos réponses!