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 :

Afficher le contenu d'une cellule selon 3 critères


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Afficher le contenu d'une cellule selon 3 critères
    Hello tous le monde,


    Je m'obstine depuis vendredi à créer un code vba et je n'y arrive pas...
    Voilà ce que je souhaites faire :
    Afficher dans la cellule B4 de la feuille "boutique JO" le contenu de la cellule D2 de la feuille "Data" selon 3 critères :
    - le contenu de la cellule A2 = "Americas" de la feuille Data
    - le contenu de la cellule E2 = "Internal" de la feuille Data
    - le contenu de la cellule I2 = "JO1" de la feuille Data
    Si cela n'est pas vérifié, passez à la cellule suivante afin d'avoir les résultats les uns à la suite des autres.

    En fait je pensais réussir avec une fonction si imbriquée mais cela ne suffit pas.


    Merci d'avance pour votre aide.



    P.S: Pour des raisons de confidentialité je suis désolée mais je ne peux transmettre aucun fichier.

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Feiisha, bonjour le forum,

    Peut-être comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
    With Sheets("Data")
        If .Range("A2").Value = "Americas" And .Range("E2").Value = "Internal" And .Range("I2").Value = "JO1" Then Sheets("boutique JO").Range("B4").Value = .Range("D2").Value
    End With
    End Sub

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour,

    En fait je pensais réussir avec une fonction si imbriquée mais cela ne suffit pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(data!A2="Americas";data!E2="Internal";data!I2="JO1");data!D2;"")
    en B4 de la feuille "boutique JO", à recopier vers le bas.

  4. #4
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim data As Worksheet
    Dim boutique As Worksheet
    Set data = ThisWorkbook.Sheets("Data")
    Set boutique = ThisWorkbook.Sheets("boutique JO")
     
    For r = 2 To data.Range("A" & Rows.Count).End(xlUp).Row
        If data.Range("a" & r) = "Americas" And data.Range("e" & r) = "Internal" And data.Range("i" & r) = "JO1" Then
        boutique.Range("b" & 3 + r) = data.Range("d" & r)
        End If
    Next r
    Passer par des filtres est peut etre également une voie de recherche

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,


    Merci à vous tous, je vais tester et je vous dirai
    Le problème avec les filtres c'est que je ne peux pas l'appliquer sur l'ensemble de mes colonnes :/

    Je vous envoies le fichier finalement
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Aucune ligne ne correspond aux critères spécifié donc pages blanches = normal
    et si le resultat escompté est en page boutique JO, l'intitulé du problème est faux.

  7. #7
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    En fonction du resultat apercu en Boutique JO, je propose ceci coller dans un bouton activeX

    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
    20
    21
    22
    23
    24
    25
    Private Sub CommandButton1_Click()
    Dim data As Worksheet
    Dim boutique As Worksheet
    Dim cell As Range
    Dim Pays As Integer
    Dim Jo As Integer
    Set data = ThisWorkbook.Sheets("Data")
    Set boutique = ThisWorkbook.Sheets("boutique JO")
    On Error Resume Next
    For Each cell In data.Range("a2:a" & data.Range("A" & Rows.Count).End(xlUp).Row)
     Pays = boutique.Rows(2).Find(cell).Column
        If Pays <> 0 Then
            With boutique
            Jo = .Range(boutique.Cells(3, Pays), .Cells(3, .Cells(3, Pays).End(xlToRight).Column)).Find(cell.Offset(0, 8).Value, , xlValues).Column
                If Jo <> 0 Then
                 'ou ceci.Cells(.Cells(65000, Jo).End(xlUp).Row + 1, Jo).Value = cell.Offset(0, 3).Value
                  .Cells(cell.Row + 3, Jo).Value = cell.Offset(0, 3).Value
                 End If
            End With
        End If
    Pays = 0
    Jo = 0
    Next cell
     
    End Sub

Discussions similaires

  1. Lien qui affiche le contenu d'une cellule masquée
    Par leloup84 dans le forum Excel
    Réponses: 3
    Dernier message: 23/02/2012, 23h44
  2. [Toutes versions] Afficher le contenu d'une cellule en fonction de plusieurs autres
    Par Riko63 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/10/2011, 00h07
  3. [XL-2007] Affiche un mot dans une cellule selon une phrase.
    Par Neptune64 dans le forum Excel
    Réponses: 3
    Dernier message: 29/09/2011, 00h02
  4. Réponses: 7
    Dernier message: 28/08/2009, 19h33
  5. Réponses: 3
    Dernier message: 27/01/2006, 19h35

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