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 :

Condition Macro Excel 2


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Condition Macro Excel 2
    Bonjour, un nouveau problème s'offre à moi sur ma Macro.
    Concernant là encore les conditions, mais en plus simple.
    Mais j'ai encore du mal, je suis débutant, j'apprends petit à petit.
    Donc concernant mon problème.

    J'ai une colonne excel appelé AA dans la feuille 2, ou il y a marqué dans chaque cellule

    "N&B" ou "couleur"

    Et donc j'aimerais remplir une nouvelle colonne à partir de ces données dans la feuille "Exporté" colonne "X"

    Concrètement si dans une cellule AA il y a marqué "N&B" j'aimerais que la cellule se transforme en "FALSE" dans la cellule correspondante

    et si la cellule contient "couleur" que la cellule se transforme en "TRUE"


    Exemple:

    Colonne AA3 feuille 2 = N&B
    alors je veux que la colonne X3 feuille "Exporté" = FALSE

    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
     
     
    Sheets("Feuil2").Select
    Range("AA2:AA1000").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
     
    Sheets("Export").Select
    Range("X2").Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
     
    Sheets("Export").Select
    Range("X2").Select
    If [X = Couleur] Then [X=TRUE]
    ElseIf [X=N&B]] Then [X= FALSE]
     
    End If
    Mais cela n'a pas fonctionné ..
    Comment dois je procédé?

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Points : 45
    Points
    45
    Par défaut
    Bonjour EnzoExcel,

    Je ne possède sûrement pas la meilleure des solutions, mais tu peux parcourir ta colonne jusqu'à une ligne (si tu la connais) ou bien jusqu'à ce que tu rencontres une cellule vide.

    Tu peux essayer le code suivant dans le cas d'une ou tu procèdes jusqu'à ce qu'une cellule de ta colonne est vide :

    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
     
    Dim sh As Worksheet
    Dim Y As Integer
    Dim X As Integer
     
    Set sh = ActiveSheet
    'Tu remplaces ici la valeur de Y par la ligne ou se situe le début des informations à modifier
    Y = 2
    'Tu remplaces ici la valeur de X par le numéro de la colonne dans laquelle tu veux travailler, pour D ça sera par exemple 4
    X = 4
    While sh.Cells(Y, X).Value <> ""
    If sh.Cells(Y,X).Value = "N&B" Then sh.Cells(Y,X).Value = "FALSE"
    If sh.Cells(Y,X).Value = "couleur" Then sh.Cells(Y.X).Value = "TRUE"
    Y = Y + 1
    Wend
    Dans le cas ou tu connais la dernière ligne de ta colonne :

    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
     
    Dim sh As Worksheet
    Dim Y As Integer
    Dim X As Integer
    Dim LastRow As Integer
     
    Set sh = ActiveSheet
    'Tu remplaces ici la valeur de LastRow par ta dernière ligne, ici 10
    LastRow = 10
    'Tu remplaces ici la valeur de Y par la ligne ou se situe le début des informations à modifier
    Y = 2
    'Tu remplaces ici la valeur de X par le numéro de la colonne dans laquelle tu veux travailler, pour D ça sera par exemple 4
    X = 4
    While Y <= LastRow
    If sh.Cells(Y,X).Value = "N&B" Then sh.Cells(Y,X).Value = "FALSE"
    If sh.Cells(Y,X).Value = "couleur" Then sh.Cells(Y.X).Value = "TRUE"
    Y = Y + 1
    Wend
    Je n'ai pas testé mais ça devrait marcher, je n'ai sûrement pas la meilleure des méthodes mais ça pourra peut être te permettre d'en apprendre un peu plus pour tes conditions et comment parcourir ton fichier Excel, tu peux toujours exploiter celle solution en en attendant une sûrement plus appropriée.

    EDIT : je n'avais pas vu que tu voulais modifier une donnée dans une autre feuille, dans ce cas tu peux simplement modifier la worksheet "sh" par Worksheets("nomdetafeuille")

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If sh.Cells(X, Y).Value = "N&B" Then Worksheets("feuil1").Cells(X, Y).Value = "FALSE"
    La cellule de coordonées (X, Y) de ta feuille "feuil1" va recevoir la valeur "FALSE".

    Cordialement,
    François

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup François, je test tte de suite

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Points : 45
    Points
    45
    Par défaut
    De rien, n'hésite pas à me tenir au courant, je n'ai pas l'habitude de répondre à des problèmes il se peut que j'ai mal interprété le tiens.

    Retiens surtout que si tu veux parcourir les cellules de ta colonne A de la ligne 1 a 10 de ta feuille "feuil1" et attribuer au cellules de ta colonne A de la ligne 1 a 10 de ta feuille "feuil2", utilise le code suivant :

    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
     
    Dim feuille1 As Worksheet
    Dim feuille2 As Worksheet
    Dim Y As Integer
    Dim X As Integer
     
    'Tu veux extraire les infos de ta colonne A donc X = 1
    X = 1
    'Tu assignes ici le nom de tes feuilles
    Set feuille1 = "feuil1"
    Set feuille2 = "feuil2"
    'Tu te positionne à ta première ligne
    Y = 1
    While Y <= 10
    If feuille1.Cells(Y,X).Value = "N&B" Then feuille2.Cells(Y,X).Value = "FALSE"
    If feuille1.Cells(Y,X).Value = "couleur" Then feuille2.Cells(Y.X).Value = "TRUE"
    Y = Y + 1
    Wend

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Alors concernant le deuxième code, malheureusement je ne connais pas la dernière ligne, enfin je pourrais le connaître mais c'est pour traiter plus de 700BDD d'un coup, et donc les données en dernier change tt le temps.

    Concernant le premier code, j'ai essayé ça a l'air de fonctionner merci ! Juste que ça traduit automatiquement en français FAUX VRAIS mais en tt cas merci beaucoup !

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Points : 45
    Points
    45
    Par défaut
    Génial, pas de soucis !

    Fais juste attention, si tu as une cellule vide au milieu de ta colonne, le code s'arrêtera car on boucle jusqu'à justement trouver une valeur vide (qui représente souvent une fin de colonne).

    Bonne journée,
    François

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    yes pas de soucis, merci beaucoup en tt cas

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

Discussions similaires

  1. Condition Macro Excel
    Par EnzoExcel dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 15/12/2014, 15h06
  2. Macro Excel Somme sous condition
    Par nduverger dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/11/2014, 19h13
  3. Macro MEFC plus de 3 conditions sous excel 2003
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 11/02/2014, 10h32
  4. [XL-2007] Macro excel selon 2 conditions
    Par playa2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2013, 20h10
  5. Réponses: 2
    Dernier message: 06/01/2011, 16h35

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