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 :

Modifier la formule d'une colonne en fonction d'une autre avec une boucle [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Modifier la formule d'une colonne en fonction d'une autre avec une boucle
    Bonjour à tous,

    Cela fait quelques jours que je bloque sur un petit problème de novice. Je m'explique, je suis un débutant et je voudrais :

    - Changer la formule d'une cellule A appartenant à une colonne "X" si et seulement si la même cellule A d'une autre colonne "Y" est non vide.


    Mon exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro()
     
    If Range("B4") <> "" Then
        Range("C4") = "=LEFT(RC[-1],3)"
    End If
    End Sub
    Donc, si "B4" est non vide, alors "C4" prends comme formule =GAUCHE(B4;3) (Ça peut être n'importe quelle formule en passant).


    Cependant il me faut une boucle pour tester toute la colonne B et je n'y arrive pas du tout ...

    Pouvez-vous m'aidez s'il vous plait ? Je vous serez grandement reconnaissant.

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Dans ton cas tu devrais intercepter l'evenement change de la cellule et faire ton action

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
     
    If Target.Address = "$B$4" And Target.Value <> "" Then
        Me.Range("C4").FormulaR1C1 = "=LEFT(RC[-1],3)"
    End If
     
     
    End Sub
    et si l'action doit se faire quelque soit la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
     
    If Target.Column = 2 And Target.Value <> "" Then
        Target.Offset(0, 1).FormulaR1C1 = "=LEFT(RC[-1],3)"
    End If
     
     
    End Sub
    Jérôme

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    dans le cas d'une liste déja existante, en utilisant une boucle, cela donne cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i As Long
     
    For i = 2 To Me.Range("B" & Rows.Count).End(xlUp).Row
        If Me.Range("B" & i).Value <> "" Then Me.Range("C" & i).FormulaR1C1 = "=LEFT(RC[-1],3)"
    Next i
    Jérôme

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup jfontaine pour ta réponse !

    Çà fonctionne parfaitement !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/10/2014, 22h48
  2. Réponses: 4
    Dernier message: 05/02/2013, 08h26
  3. Réponses: 3
    Dernier message: 16/11/2012, 15h49
  4. Réponses: 2
    Dernier message: 02/09/2011, 14h25
  5. Réponses: 5
    Dernier message: 07/05/2009, 16h41

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