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 :

Copie de valeur de cellule dans une boucle [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut Copie de valeur de cellule dans une boucle
    Bonjour,

    dans ma boucle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub id_des_new()
        Dim c As Range
        For Each c In Range("D1", Cells(Rows.Count, 4).End(xlUp))
            If c.Value = "" Then Exit Sub
            If c.Value <> 0 Then
                c.Offset(, -1) = -1     
            End If
     
        Next c
    End Sub
    J'aimerais ajouter,

    si D = 1 copier la valeur de E dans C
    si D = 2 copier la valeur de F dans C
    si D = 3 copier la valeur de G dans C

    Merci d'avance pour votre aide.

  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,

    Sans tester, ça pourrait ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub id_des_new()
        Dim c As Range
        For Each c In Range("D1", Cells(Rows.Count, 4).End(xlUp))
            If c.Value = "" Then Exit Sub
            Select Case c.Value
                Case 1
                    c.Offset(, -1) = c.Offset(, 1).Value
                Case 2
                    c.Offset(, -1) = c.Offset(, 2).Value
                Case 3
                     c.Offset(, -1) = c.Offset(, 3).Value
           End Select
        Next c
    End Sub
    MPi²

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub id_des_new()
      Dim c As Range
      For Each c In Range("D1", Cells(Rows.Count, 4).End(xlUp))
       If c.Value > 0 And c.Value < 4 Then c.Offset(, -1) = c.Offset(, c.Value)
      Next c
    End Sub
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub id_des_new()
     Dim c As Range
     For Each c In Range("D1", Cells(Rows.Count, 4).End(xlUp))
      Select Case c.Value
       Case 1 To 3: c.Offset(, -1) = c.Offset(, c.Value).Value
      End Select
     Next c
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Citation Envoyé par parmi Voir le message
    Bonjour,

    Sans tester, ça pourrait ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub id_des_new()
        Dim c As Range
        For Each c In Range("D1", Cells(Rows.Count, 4).End(xlUp))
            If c.Value = "" Then Exit Sub
            Select Case c.Value
                Case 1
                    c.Offset(, -1) = c.Offset(, 1).Value
                Case 2
                    c.Offset(, -1) = c.Offset(, 2).Value
                Case 3
                     c.Offset(, -1) = c.Offset(, 3).Value
           End Select
        Next c
    End Sub

    Merci parmi.

    J'ai opté pour ta méthode.

    Merci aussi à Philippe

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/02/2014, 20h39
  2. Chercher dans les valeurs d'une cellule dans une boucle For Next
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/09/2011, 15h30
  3. Choisir un ensemble de cellule dans une boucle
    Par Garlim dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2007, 15h02
  4. [VBA-E]connaitre l'adresse de cellule dans une boucle
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/02/2007, 23h13
  5. Réponses: 2
    Dernier message: 06/02/2007, 15h05

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