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

Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012 - 26 avril 2012 à 15:21
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012 - 26 avril 2012 à 23:41
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 avril 2012 à 16:19
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
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
26 avril 2012 à 16:20
Pour compléter je voudrais démarrer ma boucle en cellule x jusqu'à la A54 par exemple!

Merci d'avance pour vos réponses
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
26 avril 2012 à 16:20
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é.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 avril 2012 à 16:29
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
26 avril 2012 à 16:40
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.
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
26 avril 2012 à 23:17
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 avril 2012 à 23:29
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
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
26 avril 2012 à 23:41
dac merci à tous pour vos réponses!
0
Rejoignez-nous