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 :

Récupérer la valeur d'une variable d'une colonne vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut Récupérer la valeur d'une variable d'une colonne vba
    Bonjour tout le monde,

    Je souhaiterais connaitre les possibilités afin de pouvoir obtenir ceci:

    Dans la cellule B2 de la feuil1 récupérer la valeur de la cellule A1 de la feuil2

    5 sec après

    Dans la cellule B2 de la feuil1 récupérer la valeur de la cellule A2 de la feuil2

    5 sec après

    Dans la cellule B2 de la feuil1 récupérer la valeur de la cellule A3 de la feuil2
    etc..............

    et quand on à fait la dernière cellule de la colonne A de la feuil2 remplie
    On revient à la première cellule de la colonne:

    Dans la cellule B2 de la feuil1 récupérer la valeur de la cellule A1 de la feuil2
    et on recommence avec les 5 sec jusqu'à la demande d'arrêt

    J'espère être bien explicatif de ma demande.

    Cordialement,

    Vincent.

    A savoir, j'ai essayé cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test3()
     For i = 1 To 10
        Sheets("feuil1").Range("B2") = Sheets("feuil2").Cells(i, 1)
    Next i
    End Sub
    Mais entre chaque i, il n'y a pas d'intervalle de 5 sec expliquer plus haut.

    Merci d'avance de m'aiguiller.

    Vincent.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Regarde du côté de Application.OnTime()

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


    Bonjour,

    voir du côté des propriétés CurrentRegion, Rows, Count et de la méthode Wait


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Soit tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Wait Time + TimeSerial(0, 0, 5)
    Soit tu utilises un sleep :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) ' à mettre en haut de module
     
     
    Sleep 5000 'Sleep calcule en millisecondes
    EDIT : mouarf, 3 à répondre en même temps

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Merci pour vos réponses très rapides et fonctionnelles.

    Maintenant comment lui dire de revenir à 1 après la dernière cellule remplis?

    Cordialement,

    J'ai essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test3()
     For i = 1 To 10
        If i = "" Then
        i = 1
        Else
        Sheets("feuil1").Range("B2") = Sheets("feuil2").Cells(i, 1)
        Application.Wait Time + TimeSerial(0, 0, 5)
     
        End If
    Next i
    End Sub

    Mais il ne prend pas en compte la cellule vide.

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    J'ai pas compris ta question

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    En faite quand il fait la dernière cellule remplis de la colonne A de la feuil2.
    Actuellement il s'arrête; Moi je souhaiterais qu'il revient à la première ligne et s'arrête que à la demande.

    Cordialement,

    Vincent.

    Je demande cela mais c'est peut-être pas possible vu que c'est avec un for définis?

    Je fais pleins de test mais rien n'y fait.

    Cordialement,

    Vincent.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test3()
        Dim I As Long
     
        For I = 1 To 10
            Sheets("feuil1").Range("B2") = Sheets("feuil2").Cells(I, 1)
            Application.Wait Time + TimeSerial(0, 0, 1)
            If I = 10 Then
                I = 0
            End If
        Next I
    End Sub
    En passant, dans une boucle For i = 1 to 10, rien ne sert de valider si i = ""

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Merci beaucoup Parmi ceci fonction correctement.
    Par contre la dernière ligne remplis est variable.

    Peux ton mettre un for i = 1 to ..;
    Comme ceci: Range("A2:A" & F.[A65000].End(xlUp).Row).Value

    Merci d'avance pour ta réponse.

    vincent

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Comme ceci peut-être ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test3()
       Dim I As Long, nbLignes As Long
     
       nbLignes = Sheets("Feuil2").Cells(Rows.Count, "A").end(xlUp).Row
     
       For I = 1 To nbLignes 
            Sheets("feuil1").Range("B2") = Sheets("feuil2").Cells(I, 1)
            Application.Wait Time + TimeSerial(0, 0, 1)
            If I = nbLignes Then
                I = 0
            End If
        Next I
    End Sub

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Merci encore Parmi. C'est parfait çà!
    Maintenant je vais pouvoir continuer mon appli.

    Bonne soirée.
    Vincent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Réponses: 0
    Dernier message: 21/01/2009, 13h52
  3. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  4. Réponses: 2
    Dernier message: 30/10/2008, 13h28
  5. Réponses: 12
    Dernier message: 06/08/2008, 14h39

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