IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

decrementer selection chaque fois que macro est appelée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 40
    Par défaut decrementer selection chaque fois que macro est appelée
    bonjour,

    j'ai un macro disons sub fonc1() qui selectionne une range par exemple de B2:B6
    for each cel in selection
    A1 prends la valeur de cel.

    j'ai un macro sub fonc2() qui appelle fonc1 onTime. et qui place disons B2 dans A1.

    ce que je veux faire en gros, appeler fonc2, avoir la valeur de B2 dans A1... puis appeler fonc2 encore une fois et avoir B3 dans A1 cette fois ci.. et ainsi de suite jusque la fin de la selection de fonc1... ceci est-il possible??

    Merci

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir

    est ce que ce qui suit te convient?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Sub aa()
    For Each c In Range("B2:b6")
    [a1] = c.Value
    Attendre 5
    Next
     
    End Sub
    Function Attendre(Secondes As Integer)
    ' Cette procédure temporise pendant le nombre de secondes
    'qu'on lui transmet en argument
    'auteur inconnu
    Dim Début As Long, fin As Long, Chrono As Long
    Début = Timer
    fin = Début + Secondes
    Do Until Timer >= fin
        DoEvents
    Loop
    End Function
    salutations

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 40
    Par défaut
    salut,
    merci pour ta rapide reponse...
    le probleme c'est que je veux rappeler la donction aa manuellement
    pour la simple raison que une fois que ma case A1 est pleine il y a des cases qui se remplissent dynamiquement... du coup je ne sais pas combien de temps attendre... donc en gros... je mets kkchose dans A1... j'attends...que tout se fasse et je reviens plus tard pour changer la valeur de A1...
    entre tmps j'aimerais qu'il y ai decrementation au niveau de la range!!!
    pfff c affreu!!! j'y ai passe tout la journee... mais en vain!

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Je ne comprend pas bien ce que tu veux faire
    Qu'entends tu par "j'aimerais qu'il y ai decrementation au niveau de la range!!!"

    par exemple pour "B2:B6"
    Quand la valeur de B2 est en A1 que tu n'est plus que les valeurs de B3:B6 qui se "déplacent" en B2:B5? Si oui dans quel but?

    As tu un classeur exemple ou des copies d'écran de ce que tu veux

    Qu'advient il des cellules qui changent dynamiquement en fonction de A1.
    Conserves tu leur valeur quelque part
    fred65200

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 40
    Par défaut
    salut,
    voila l'explication totale:

    j'ai un excel dynamique... (enfin on m'en a donne un quoi) qui se connecte a je ne sais pas quoi... bref...

    lorsque je mets une KEY precise dans la case A1 disont, le fichier genere pleins d'infos dans le sheet1, et creer plein de requetes SQL dans le sheet3...
    dans le sheet 2 il y a une liste de KEY
    donc au depart j'ai fait une liste deroulante dans le sheet 1, l'utilisateur choisis la KEY qu'il veut et le reste se fait tout seul...
    j'ai du ensuite creer un bouton qui execute toutes les requetes SQL... ca c bon...

    mnt on me dit...
    j'ai la fonc2 qui execute les requetes... je mets un OnTime dedans pour appeler la fonc1... cette fonc1 remplace dans sheet1!A1 la case disons sheet2!B2 apres par exemple 10secondes.
    je r'appelle fonc2, elle execute les requetes et 10 secondes apres appelle fonc1 qui elle mettra sheet2!B3 dans sheet1!A1... donc du coup la selection a decrementer!!!
    c un truc de fou je sais...
    on m;a dit que offset pourrait m'aider mais je n'ai aucune idee de comment c;est possible!!

    merci de ton aide fred, et tous les autres qui lisent c truc maxi complique...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Que veux-tu décrémenter ? As-tu un compteur ?
    Dans quelles condition ? (Appel fonc2 ou fonc1 ?)
    Comment est lancé Fonc2 ?
    l'utilisateur choisis la KEY qu'il veut
    De quoi parles-tu ?
    Fonc1 est-elle appelée toutes les 10 secondes un fois lancée ou seulement une fois ?
    Si Fonct1 se poursuit, qu'est-ce qui arrête le timer ?
    As-tu un compteur qui te permet de décrémenter... et quoi ?
    Tes explications ne nous permettent pas de t'aider. Reprends la démarche en énumérant ce que fait ta procédure et ce qui la conditionne. Ou donne nous un code qui nous permette de comprendre.
    Si c'est un simple compteur qu'il te faut, place-le dans une feuille de calculs ou dans un contrôle (un textbox par exemple) avec Visible = false, et agit dessus chaque fois que la condition pour le modifier est remplie.
    Tu dis
    A+

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/09/2014, 16h57
  2. [Toutes versions] Nouveau formulaire chaque fois que procédure est modifiée?
    Par Souriane dans le forum Access
    Réponses: 8
    Dernier message: 03/07/2011, 16h24
  3. Réponses: 6
    Dernier message: 28/02/2009, 15h57
  4. Réponses: 3
    Dernier message: 23/06/2006, 10h03
  5. Réponses: 10
    Dernier message: 17/05/2006, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo