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 :

Rechercher une "valeur" qui "varie".


Sujet :

Macros et VBA Excel

  1. #21
    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
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour, Ousk,

    voilà ce que je lis :

    Citation Envoyé par DeaD78 Voir le message
    j'ai entouré là où il fallait mes A ou mes A-B de "|" qu'on ne peut trouver ailleurs dans le document.
    il y a donc (quand il y a) un "|" de début et un "|" de fin pour chaque valeutr toto trouvée !

    Je m'intéresse alors peu (puisque valeur complète déjà trouvée) à ce qu'il y a entre les deux...
    Je l'ai malgré tout (fzacultatif) extirpé (variable machin) et il peut en faire ce qu'il veut (y compris pour transformer A en AA et A-B en AA-BB) le plus simplement du monde ...

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Ce que je viens de faire à ma façon d'ailleurs Mais le replace me gène sur la syntaxe

  3. #23
    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
    Points : 5 537
    Points
    5 537
    Par défaut
    Oui ?
    Et ?

    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
    Private Sub Command1_Click()
      dim toto as string, machin as string, pos1 as integer, pos2 as integer, posmachin as integer
      toto = "blabla blabla |A-B| blablabla blabla"
      pos1 = InStr(toto, "|")
      pos2 = InstrRev(toto, "|")
      machin = Mid(toto, pos1 + 1, pos2 - pos1 - 1)
      posmachin = InStr(machin, "-")
      If posmachin > 0 Then
       machin = String(2, Left(machin, 1)) & "-" & String(2, Right(machin, 1))
      Else
       machin = machin & machin
      End If
      toto = Left(toto, pos1) & machin & Mid(toto, pos2)
      MsgBox toto ' ce msgbox n'est là qu'en démo !
    End Sub
    et tu donnes la valeur toto à la cellule traitée (chacune de celles que t'a trouvées la méthode find) ... où est donc le problème ?

  4. #24
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Ben là je veux juste faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(c.Address) = Replace(Range(c.Address), "|A|", "|A||A|")
    pour ne pas me compliquer la vie.

    Sachant que Var = |A|, comment le faire histoire de pas me compliquer la vie?

  5. #25
    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
    Points : 5 537
    Points
    5 537
    Par défaut
    Adieu et bonne chance

  6. #26
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Var = Mid(c, InStr(c, "|"), (Len(c) - InStr(c, "|")))
    En faisant ça, tu auras quelque chose, mais pas ce que tu cherches
    teste ça et prends le meilleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Mot = "Coucou |A| c'est moi"
    Var = Mid(Mot, InStr(Mot, "|"), (Len(Mot) - InStr(Mot, "|")))
    MsgBox Var
    Var = Mid(Mot, InStr(Mot, "|") + 1, (Len(Mot) - InStr(Mot, "|") - InStr(StrReverse(Mot), "|")))
    MsgBox Var
    End Sub

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Si ça intéresse, j'ai réglé le problème comme ça :

    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
    29
    30
    31
    32
    33
    34
    35
    Sub Repeat(NomFeuille As String)
     
    Dim c As Range, Var1 As String, Var2 As String, Var3 As String
     
    Worksheets(NomFeuille).Activate
    With ActiveSheet.UsedRange
        Set c = .Find("*|*|*", LookIn:=xlValues, lookat:=xlPart)
        If Not c Is Nothing Then
            Deb = c.Address
            Do
                Var1 = ""
                Var2 = ""
                Var3 = ""
     
                Var1 = Mid(c, InStr(c, "|"), (Len(c) - InStr(c, "|")))
                If InStr(Var1, "-") = 0 Then
                    Var2 = Mid(c, InStr(c, "|") + 1, (Len(c) - InStr(c, "|") - 2))
                    Range(c.Address) = Replace(c, Var1, "|" & Var2 & Var2 & "|")
                Else
                    Var2 = Mid(c, InStr(c, "|") + 1, InStr(c, "-") - 2)
                    Var3 = Mid(c, InStrRev(c, "|") - 1, InStr(c, "-") - 2)
                    Range(c.Address) = Replace(c, Var1, "|" & Var2 & Var2 & "-" & Var3 & Var3 & "|")
                End If
                Range(c.Address).Activate
                With ActiveCell
                    f = Len(.Value)
                    g = InStr(1, .Value, "(")
                    .Characters(Start:=g - 1, Length:=f - g + 2).Font.ColorIndex = 3
                End With
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Deb
        End If
    End With
     
    End Sub


    Merci encore de votre aide ! Et à bientôt (pas trop quand même, j'espère )

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] Comment rechercher une dernière valeur spécifique dans une colonne.
    Par jurdenis21 dans le forum Excel
    Réponses: 7
    Dernier message: 12/01/2013, 15h11
  2. [MySQL] Recherche FULL TEXT IN BOOLEAN MODE et les Quotes
    Par GarGamel55 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 23/01/2006, 20h01
  3. supprimer une table qui a des quotes dans son nom
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 16h03
  4. Réponses: 7
    Dernier message: 26/10/2004, 11h02

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