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 :

Macro: Rechercher le caractere "carré"


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut Macro: Rechercher le caractere "carré"
    Bonjour,

    Quel est le code VBA qui me permettra de rechercher dans une feuille excel le caractere "carré" ?
    merci de l'aide

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Salut roidurif.

    Je te propose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim cell As Range
     
    For Each cell In Selection
        If InStr(1, cell.Text, "carré") <> 0 Then
            'blabla
        End If
    Next
    Dis si ca te convient
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut
    Bonjour je me suis mal fait comprendre il s' agît d un caractère spécial le petit carre merci

  4. #4
    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
    Bonsoir,

    Bien que rien ne permette de l'affirmer avec certitude, il y a de très fortes chances pour qu'il s'agisse du caractère Null de terminaison d'une chaîne.

    Reprends donc le code de melouille56 en remplaçant "carré" par chr(0), pour voir...

  5. #5
    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
    Bonsoir roidurif, ucfoutu, melouille, le forum,
    en faisant une boucle sur les chr, je suis tombé dessus

    chr(178)

    Bonne nuit
    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...)

  6. #6
    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
    En fait plusieurs caractère peuvent donner un carré? le plus simple est de regarder les différent caractère pouvant faire un carré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1 to 127
    cells(i,1)=chr(i)
    next i
    et ensuite on recherche chaque caractère

    j'ai testé sous 2003 tous les caractère de 1 à 9 de 11 à 31 le 10 est une case vide. Et le 127.
    tu reprend le code de melouille56 avec chr(i)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each cell In Selection
    for i=1to 31
     
        If InStr(1, cell.Text, chr(i)) <> 0 and i<>10 or InStr(1, cell.Text, chr(127)) <> 0 Then
            'blabla
            exit for
        End If
    next i
    Next

  7. #7
    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
    Re...

    C'est l'inverse, qu'il faut faire ....

    Choisir une cellule contenant ce caractère et en affecter le contenu à une variable A, puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To Len(A)
      MsgBox Asc(Mid(A, i, 1))
    Next
    NB : je continue à penser que le nombre de chances pour qu'il s'agisse du caractère 0 est grand .... surtout si ce que contient la cellule provient d'ailleurs ou est le résultat d'une fonction de l'api de windows (ou encore provient de l'exploitation d'un fichier texte structuré...)

  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
    j'ai pas mis 0 car je n'ai pas réussi a faireMais c'est vrai que ma boucle devrais commencer a 0

    Par contre je ne comprend pas vraiment ce que tu appelle faire l'inverse?
    Ton code est bon si on part du principe que c'est toujours le même carré.
    En fait c'est même le plus probable, dans ce cas il est même bien meilleur. Puisque tu ne feras qu'un teste et non 33.

    Je suis parti du principe que l'on peut avoir des carré de différent type, c'est sans doute du au fait que j'ai ai déjà récupéré plusieurs différent dans un même fichier

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour à tou(te)s
    Pour en avoir le coeur net...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Test()
    Dim Txt, Ch
        For i = 0 To 125
            Txt = Txt + Chr(i)
        Next i
        Ch = Mid(Txt, 5, 1)
        Debug.Print Txt
        Debug.Print Ch
        Debug.Print Asc(Ch)
    End Sub
    Résultat,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        
    
     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}
       'Ch
     4 'asc(Ch)
    A+

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Je crois qu'il y a maldonne, il me semble que casefayere ne parle pas du caractère "" mais de "²"
    Est-ce que c'est ce que veut roidurif ?

  11. #11
    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 neupont,Leforestier, Krovax, ucfoutu, roidurif, melouille,

    tu as raison Neupont, roidurif l'a spécifié plus tard, il s'agit d'un petit carré mais comme l'ont fait remarquer tous les abonnés ci-dessus, il suffit de faire une boucle avec un msgbox à l'intérieur pour retrouver le code avec chr(x)

    Bonne journée
    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...)

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 10h55
  2. [MOSS 2007]Recherche avancée : proprité avec un quote
    Par royto dans le forum SharePoint
    Réponses: 6
    Dernier message: 14/09/2007, 14h43

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