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 :

[VBA-E] Tri en fonction de lettre


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Points : 41
    Points
    41
    Par défaut [VBA-E] Tri en fonction de lettre
    Bonjour,


    voilà je dois mettre "stock" dans la cellule AH si la cellule de la colonne B contient un numéro commençant par "Q"

    Je dois mettre Entrée dans la cellule AH si la cellule de la colone b commence par "X" ou contient "conten"


    Je suis bloqué...

    Merci

  2. #2
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Salut,

    La solution peut être de passer par une fonction que tu appliques sur une cellule prenant en référence une autre cellule:

    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
    26
    27
    28
    Function CodeStock(ByRef Target As Range) As String
    Dim maChaine As String
    Dim C
        If Target.Cells.Count > 1 Then
            GoTo ErrHandler
        End If
     
        For Each C In Target.Cells
            Select Case UCase(Mid(C.Value, 1, 1))
                Case "Q"
                    CodeStock = "Stock"
                    Exit Function
                Case "X"
                    CodeStock = "Entrée"
                    Exit Function
                Case Else
                    If InStr(C.Value, "conten") <> 0 Then
                        CodeStock = "Entrée"
                    Else
                        CodeStock = "## Données entrée invalides ##"
                    End If
                    Exit Function
            End Select
        Next C
     
    ErrHandler:
        CodeStock = "## Nombre de cellule sélectionnée >1 ##"
    End Function
    Bonne continuation

    Théo
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut Tri en fonction de lettres
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1) Quelle cellule de la colonne B ??
    2) Il vaut mieux mettre l'entièreté de la valeur (par exemple x124), de façon à permettre d'utiliser une boucles If Then Else.
    jpleroisse

  4. #4
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Re,

    J'ai oublié de préciser que le code s'applique sur la cellule de la colonne AH en fonction de la cellule de la colonne B

    ex code cellule AH7:
    =CodeStock("B7")

    @+

    Théo
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut Tri selon lettres
    Bonjour,
    Essaie ce code comme il est pour toi le comprendre, ensuite change à tes besoins la cellule de destination.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Sub Test()
    If Range("B7").Value = "QuantitéStock" Then
    Range("D7").Value = "Stock"
    ElseIf Range("B7").Value = "ContenStock" Then
    Range("D7").Value = "Entree"
    End If
    End Sub
    jpleroisse

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Re bonjour,
    Dans la macro j'ai écrit dans la cellule B7 QuanititéStock et ensuite j'ai remplacer par ContenStock, si c'est autre chose qui y est écrit alors change le nom dans la macro. Tu peux aussi mette plusieur ElseIf avec d'autres noms.

    jpleroisse

  7. #7
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Citation Envoyé par leroissejp
    Re bonjour,
    Dans la macro j'ai écrit dans la cellule B7 QuanititéStock et ensuite j'ai remplacer par ContenStock, si c'est autre chose qui y est écrit alors change le nom dans la macro. Tu peux aussi mette plusieur ElseIf avec d'autres noms.

    jpleroisse
    Lut jpleroisse,

    Il est à noter qu'il travaille essentiellement sur la première lettre de ce qui est écrit dans la cellule de référence comme il le signale dans son post...


    @+

    Théo

    Pensez au tag en bas à gauche, merci
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

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

Discussions similaires

  1. [XSLT] Tri en fonction d'un paramètre
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 21/04/2005, 10h29
  2. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  3. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18
  4. [VBA-W] [AUTOMATION]Liste Fonctions/Paramètres
    Par Sunny dans le forum VBA Word
    Réponses: 2
    Dernier message: 05/12/2002, 16h35
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

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