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 :

Sélectionner les deux premiers chiffres d'un code postal pour une recherche formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut Sélectionner les deux premiers chiffres d'un code postal pour une recherche formulaire
    Bonjour !

    Je me permets de poster ce message puisque je suis à la recherche du bonheur ! :p
    j'ai codé mon formulaire pour lui dire de sélectionner l'ensemble de mes données correspondant entre telle date et telle date et correspondant à un tel département. Mon problème est que j'ai en stock que des codes postaux, soit 5 chiffres. Je veux pouvoir récuperer l'ensemble des codes postaux comprenant les deux premiers chiffres inscrit dans ma recherche.
    exe: je veux le département 77, ma ligne de code doit aller chercher l'ensemble des codes postaux comprenant 77 comme premiers chiffres : 77001/77002/77003...

    Pour l'instant, à travers mon code, je ne sais faire ma recherche que à partir des 5 chiffres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If .Cells(ligne, 3) >= dateDebut And .Cells(ligne, 3) <= datefin And .Cells(ligne, 11).Value = dpt Then
    J'ai essayé toute sorte de combine comme celle ci mais sans réussite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If .Cells(ligne, 3) >= dateDebut And .Cells(ligne, 3) <= datefin And .Cells(ligne, 11).[##].Value = dpt
    Merci par avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à lire : Manipuler les chaînes de caractères en VB6 et VBA Excel et donc voir Like ou Left par exemple.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut
    Bonjour, merci de votre post mais j'avais déja étudié la page de silkyroad. J'ai fait preuve de persévérance en réessayent d'écrire ma ligne de code avec like ou left mais sans réussite...

    Avec left, j'écris mon code de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For ligne = 1 To .Rows.Count
            If .Cells(ligne, 3) >= dateDebut And .Cells(ligne, 3) <= datefin And .Left((Cells(ligne, 11)), 2).Value = dpt Then
                Set Lr = Feuil2.ListObjects(1).ListRows.Add
                .Rows(ligne).Copy Lr.Range(1, 1)
            End If
    Mais j'ai ce message d'erreur qui apparait :

    Nom : Message d'erreur4.JPG
Affichages : 2371
Taille : 13,6 Ko

    Avec Like, j'écris le code suivant, je n'ai pas de message d'erreur mais ma recherche n'aboutit pas. Rien n'est sélectionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For ligne = 1 To .Rows.Count
            If .Cells(ligne, 3) >= dateDebut And .Cells(ligne, 3) <= datefin And .Cells(ligne, 11).Value Like "##" = dpt Then
                Set Lr = Feuil2.ListObjects(1).ListRows.Add
                .Rows(ligne).Copy Lr.Range(1, 1)
            End If
    Que pensez vous qu'il me manque ?
    En vous remerciant,

    Cordialement

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Bonjour,

    Pour le like essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(ligne, 11).Value Like dpt & "*"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pour compléter la réponse de halaster08 je dirai que si dateDebut et datefin ne sont pas typé as date, ainsi que .Cells(ligne, 3) et .Cells(ligne, 11) ne sont pas vue comme des date, tu aurras une erreur de type!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For ligne = 1 To .Rows.Count
            If format(.Cells(ligne, 3),"yyyy-dd-mm") >= format(dateDebut,"yyyy-mm-dd") And format(.Cells(ligne, 3),"yyyy-mm-dd")  <=format( datefin ,"yyyy-mm-dd") And .Cells(ligne, 11).Value Like "##" = dpt Then
                Set Lr = Feuil2.ListObjects(1).ListRows.Add
                .Rows(ligne).Copy Lr.Range(1, 1)
            End If

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    ainsi que .Cells(ligne, 3) et .Cells(ligne, 11) ne sont pas vue comme des date, tu aurras une erreur de type!
    Pour .Cells(ligne, 3) oui, mais .Cells(ligne, 11) c'est un code postal (si j'ai bien compris) donc pas au format date mais plutôt texte, non?

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

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