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 :

écrire codes élementaires vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut écrire codes élementaires vba
    Bonjour tout le monde,
    j'ai quelques petites questions sur VBA:

    1) j'aimerai savoir comment on traduit en code vba :

    Si "varible" appartient à une liste de valeurs (pas forcéments des chiffres : une liste de chaines de caractères séparées par des virgules par exemple )

    2) Pour compteur i allant de 2 à la longueur du tableau excel faire (instructions)
    sachant que cette longueur = nombre de lignes du tableau n'est pas connue d'avance : c'est au code de la trouver tout seul

    3) Si "variable" = valeur 1 ou valeur 2 ou valeur 3 et "variable" différente de valeur A et valeur B et valeur C , faire (instructions)


    merciiiii

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    bonjour
    Si "varible" appartient à une liste de valeurs (pas forcéments des chiffres : une liste de chaines de caractères séparées par des virgules par exemple )
    Ou se trouve ta liste? dans une feuille excel une variable tableau?
    2) Pour compteur i allant de 2 à la longueur du tableau excel faire (instructions)
    sachant que cette longueur = nombre de lignes du tableau n'est pas connue d'avance : c'est au code de la trouver tout seul

    je dirais si c'est dans un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim c as range
    set c= worksheets("feuil1").Range("TaplageTableau").find(variable)
     
    if not c is nothing then
    'ce que tu veux faire si c est dans ton tableau c est la cellule contenant ta valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Pour compteur i allant de 2 à la longueur du tableau excel faire (instructions)
    sachant que cette longueur = nombre de lignes du tableau n'est pas connue d'avance : c'est au code de la trouver tout seul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 to derniereligne
    regarde ici pour renseigner derniereligne
    Si "variable" = valeur 1 ou valeur 2 ou valeur 3 et "variable" différente de valeur A et valeur B et valeur C , faire (instructions)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if variable=valeur1 or variable=valeur2 or.... then
    'action
    end if

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut
    Bonjour Ellewided, Krovax

    Pour ta 1ère question, s'il s'agit de faire une recherche de caractères dans une variable, peut être procéder ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim machaine As String
    machaine = "text1,text2,text3,13"
    If InStr(1, machaine, "text1", vbBinaryCompare) > 0 Then _
        MsgBox "ok,text1 dans ma chaîne !!!"
    Pour la 3ème, je l'aurais bien vu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (mavariable = 1 Or mavariable = 2 Or mavariable = 3) And _
        (mavariable <> "A" Or mavariable <> "B" Or mavariable <> "C") Then _
            MsgBox "Test OK"
    bon après midi
    @+

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    merci de la réponse Krovax

    en fait pour la question num 1 )
    il s'agit d'une liste ou autrement un ensemble de valeurs que je rentre moi meme, je veux écrire si variable appartient à ( val1, val2, val3, ... val N)

    2)
    For i = 2 to derniereligne

    mais en fait comment traduire " derniereligne " en code vba

    3)
    commment dire if variable "Différente de" val 1 et variable "Différente de" val 2

    merciii

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Je t'ai donné un lien popur le dernière ligne tu clique et tu as une dizaine de solution (alors c'est vrai c'est petit il faut cliquer sur le mot "ici") (c'est plus facile que de jouer a "ou est charlie?" ne t'inquiète pas )


    Pour le test je suis allé un peu vite le code de pierot93 qui correspondra a tes attentes

    Tu ne pas pas dit dans quoi tu rentre tes valeur, un tableau ? une chaine de caractère (le code de pierrot devrais convenir dans ce ca)

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par Krovax Voir le message

    une chaine de caractère (le code de pierrot devrais convenir dans ce ca)
    Non...

    Car il trouverait Text1 dans "patatiText1, patataText2"
    Lorsque l'on joue avec cette utilisation des chaines, il faut chercher dans une chaîne ainsi construite (exemple avec le délimiteur de son chois - ici #) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    titi = "#Text1#Text2#Text3#
    etc...
    Et rechercher avec (exemple)

  7. #7
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    merciiiii Pierrot93

    sinon pour ma deuxième question , tu saurais pas comment faire pour parcourir toutes les lignes d'un tableau ( pour une colonne donnée , exemple toutes les lignes , et colonne 4) sachant que je ne connais pas le nombre total des lignes du tableau d'avance : en fait je travaille sur un excel modifiable c'est à dire que l'utilisateur peut rajouter ou supprimer des lignes donc leur nombre n'est pas fixe

    bonne aprèm à toi aussi

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Citation Envoyé par ellewided Voir le message
    merciiiii Pierrot93

    sinon pour ma deuxième question , tu saurais pas comment faire pour parcourir toutes les lignes d'un tableau ( pour une colonne donnée , exemple toutes les lignes , et colonne 4) sachant que je ne connais pas le nombre total des lignes du tableau d'avance : en fait je travaille sur un excel modifiable c'est à dire que l'utilisateur peut rajouter ou supprimer des lignes donc leur nombre n'est pas fixe

    bonne aprèm à toi aussi
    Tu le fais exprès????
    CLIQUE ICI

    Et effectivement ucfoutu a raison, pour le problème de instr, soit précis et essaye de répondre a ma question.
    A quoi resemble exactement ta variable

  9. #9
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    désoléeeee Krovax j'ai répondu à Pierrot93 avant de lire ta réponse
    je vais regarder le lien tt de suite
    sinon pour la variable : il s'agit d'une chaine de caractère

    en fait en gros j'ai un tableau excel : la première colonne correspond au nom du salarié, la colonne 9 correspond au type de son abscence , et j'essaye de chercher les abscences non payées dans toutes les lignes du tableau selon leur codes :
    chaque abscence a un code , exemple
    M : maladie : abscence non payée, JRTT, E : evenement familial
    F : formation : abscence payée

    donc machaine sera la liste des codes des abscences non payées séparés par des virgules, par contre je vérifie pas si une chaine fixe #texte1# existe dans machaine ou pas mais plutot si le contenu de la cellule (i,9) y est ou pas (avec i compteur parcourant toutes les lignes du tableau) :

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TypAbsceneCompte = "#JRTT#M#E#"
     
    If InStr(TypAbsceneCompte, Cells(i, 9).Value) Then
        MsgBox "ok,type d'abscence dans ma chaîne !!!"
    mais ça ne marche pas

Discussions similaires

  1. [PPT-03] - Modifier le code par VBA
    Par Daejung dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 30/11/2008, 18h18
  2. Modifier du code en vba
    Par elmat dans le forum VBA Word
    Réponses: 1
    Dernier message: 31/10/2008, 11h37
  3. une action dans excel peut elle créer une ligne de code dans VBA?
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/09/2008, 07h23
  4. code date vba
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/04/2008, 11h49

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