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 sur des caractères


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut Condition sur des caractères
    Bonjour,

    Je commence un projet en VBA-Access dans lequel je crée des fichiers excels à partir d'une base de donnée.

    Une fois que les différents champs ont été renseignés, je voudrais faire en sorte que quand une cellule commence par les caractères "Ab..." cette cellule soit caché.

    Pour cacher la cellule cela ne me pose pas de problème, normalement.

    Cependant, je n'arrive pas à trouver une fonction et à utiliser les fonctions que je trouve pour faire cette recherche de caractère.

    Quelqu'un a t-il une solution?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Bonjour,

    Je ne vois pas bien dans quel produit tu veux faire cette manip.

    Tu parles de cellules donc Excel, ici tu es sur le forum ACCESS.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Bonsoir,

    Mea Culpa, effectivement, mon projet est en Access VBA mais j'ai seulement besoin de la fonction en VBA Excel qui puisse me permettre de faire cette manip.

    Est-il possible de modifier le forum?

    Merci en tout cas.

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    utiliser un filtre par exemple, code livré sur un plateau via le Générateur de macros !

    Ensuite, voir dans l'aide VBA intégrée du côté de la propriété SpecialCells pour récupérer les cellules filtrées
    combinée à la propriété Hidden pour les cacher.

    Alternative au filtre : la méthode Find

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par GreatTeacherOnizuka Voir le message
    quand une cellule commence par les caractères "Ab..." .... faire cette recherche de caractère.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For each MaCell in Range(MaPlage).Cells
        If left(MaCell.Value,2)="Ab" then
     
            Je cache ma cellule
     
        End if
    Next MaCell
    C'est rustique mais c'est simple et ça marche.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Merci à tout les deux, j'ai utilisé 2 façons différentes mais cela ne me cache pas mes colonnes, et je ne sais pas pourquoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For J = 0 To rec.Fields.Count - 1
       If Left(xlSheet.Cells(8, J+1).Value, 2) = "Ab" Then
       'If xlSheet.Cells(8, J+1) Like AB & "*" Then
       xlSheet.Cells.Columns(J + 1).EntireColumn.Hidden = True
      End If
    Next J
    J'ai bien des cellules qui commencent par Ab à la ligne 8.

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    A quoi correspond la variable J : des colonnes ou des lignes ?

    Cf ligne de code n°3 dans laquelle seule la ligne n°8 des données est testée …

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    adaptes,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For J = "ton nombre de colonnes" To 1 Step -1
       If Left(xlSheet.Cells(8, J).Value, 2) = "Ab" Then
       'If xlSheet.Cells(8, J) Like AB & "*" Then
       xlSheet.Cells.Columns(J).EntireColumn.Hidden = True
      End If
    Next J
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Déjà, je ne sais pas ce que tu veux faire avec ton "xlSheet" mais si c'est une variable, je te conseille de changer son nom.
    La plupart des constantes Excel commencent par "xl" donc c'est un risque de conflit et d'embrouille de commencer un nom de variable par ces deux lettres.

    Je connais pas l'objet "Fields" et il semble inconnu aussi de l'aide VBA Excel.

    Ensuite, dans xlSheet.Cells.Columns(J + 1).EntireColumn.Hidden = True , je ne vois pas trop à quoi sert le Cells ? En fait c'est tout l'empilement Cells.Columns(J+1).EntireColumn qui est franchement bizarre.

    Je ne sais pas exactement ce que représente ton "rec", il faudra donc que tu adaptes le code qui suit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Limite = Cells(Columns.Count,8).End(xlToLeft).Column
    For each MaCell in Range("A8:"&Limite&"8").Cells
        If left(MaCell.Value,2)="Ab" then
            MaCell.EntireColumn.Hidden = True
        End if
    Next MaCell

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Effectivement, je ne teste que les valeurs de ma ligne 8, c'est ce que je veux faire.

    Avec ta méthode Casefayere, ça donne la même chose. ça compile mais ne me cache pas mes colonnes.

    Pour vous donner une idée, je crée mes fichiers excel dynamiquement avec des bases de données de Access.

    Alors le bug peut, peut être venir du fait que les données exportées depuis access n'ont pas le même format que des données classiques?

  11. #11
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ca explique ton "Field".
    Les objets VBA n'ont pas le même nom dans Excel, Accès et Word.

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Oui, je suis un peu dans l'impasse sur ce point là du coup, je vais essayer d'y réfléchir de nouveau et si vous avez une solution, je suis preneur.

  13. #13
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Et le second code que je t'ai proposé ?

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Je viens de tester ton deuxième code et toujours la même chose, cela compile mais ne me cache pas mes colonnes. Dans Access les champs qui commencent par ces deux lettres sont du type NuméroAuto. A votre avis est-ce que le problème peut venir de là? (Mais je précise quand même que c'est sur le nom du champ que j'essaye de faire mon test.)

  15. #15
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Essaye de le faire avancer en pas-à-pas pour voir par où il passe et quelles sont les valeurs des variables (pour ça, pense à avoir la fenêtre "Variables locales" ouverte).

  16. #16
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Finalement, j'ai résolu le problème. J'avais un nouveau tableau qui se créé plus tard dans mon code et ça devait annuler ces propriétés là.

    Je vous remercie en tout cas, vous m'avez quand même bien aidé.

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

Discussions similaires

  1. [RegEx] Expression régulière sur des caractères alphanumériques
    Par hash95 dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2008, 17h26
  2. Exprimer une condition sur des sous-formulaires.
    Par Julieta dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2007, 15h11
  3. EXCEL SOMME.SI avec condition sur des dates
    Par cfhal dans le forum Excel
    Réponses: 7
    Dernier message: 15/10/2007, 08h21
  4. condition sur des checkbox
    Par bogsy15 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/08/2006, 09h28
  5. [FLASH MX2004] Pb sur des caractères accentués.
    Par sandrineLL dans le forum Flash
    Réponses: 3
    Dernier message: 05/08/2004, 14h18

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