Extraire les valeurs de cellules contenant x

corben -  
 David -
Bonjour,

Je suis nouveau sur le forum, aussi, pardonnez mes questions de débutant...

Je dispose d'une feuille dans laquelle des cellules contiennent le caractère "X" suivi de données (une donnée par cellule, par exemple 12.589).
Je souhaiterais savoir s'il serait possible d'extraire toutes ces données (lesquelles pouvant se trouver n'importe où dans une feuille contenant trois colonnes A, B et C) et de les coller dans une autre colonne de cette même feuille (par exemple D).

Merci beaucoup pour votre aide à tous
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. David
     
    Salut corben

    Si je comprends bien ton problème :
    tu as 3 colonne, tu veux récupérer la valeurs des cellules qui contient un x dans une quatrième colone,
    Question
    Comment ca se passe si sur la meme ligne, 2 colonnes ont un x ?

    David
    0
    1. corben2a Messages postés 8 Statut Membre
       
      Bonjour David, merci pour tes posts.

      Dans mon cas, il ne peut pas y avoir deux fois X sur la même ligne. Par contre, les cellules contenant les x ne sont pas forcément toujours dans la même colonne même si EN GENERAL (pas toujours, si non ça aurait été plus simple !), la colonne A contient les X, la colonne B les Y et la colonne C, les Z !

      Je vais essayer ton programme tout de suite !


      Merci beaucoup !

      A bienôt,

      Corben
      0
  2. David
     
    Je t'ais fait une petite fonction qui devrais te suffire après adaptation pour 3 colonnes

    Sub verif_x()
    Dim i, temp
    i = 1
    While Not Cells(i, 1) = ""
    For j = 0 To Len(CStr(Cells(i, 1)))
    temp = Mid(CStr(Cells(i, 1)), j + 1, 1)
    If (temp = "x") Then
    Cells(i, 2) = Cells(i, 1)
    Exit For
    End If
    Next
    i = i + 1
    Wend
    End Sub

    David
    0
    1. corben2a Messages postés 8 Statut Membre
       
      Salut David,

      Je suis vraiment débutant en la matière alors j'ai essayé de coller ton code dans "Module1" sous visual basic (depuis Excel) et la Macro ne modifie rien à mon fichier de départ. Je ne sais pas où sont placée les valeurs extraites et comment modifier ton code pour obtenir des résultats.

      Peux tu m'aiguiller un peu plus ?

      Merci de m'avoir répondu aussi rapidement, en attendant, je vais essayer de comprendre comment fonctionne ton code...


      Corben
      0
      1. David > corben2a Messages postés 8 Statut Membre
         
        Re

        Sub verif_num()
        Dim i, temp
        i = 1
        While Not Cells(i, 1) = ""
        For j = 0 To Len(CStr(Cells(i, 1)))
        temp = Mid(CStr(Cells(i, 1)), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 1)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        i = 1
        While Not Cells(i, 2) = ""
        For j = 0 To Len(CStr(Cells(i, 2)))
        temp = Mid(CStr(Cells(i, 2)), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 2)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        i = 1
        While Not Cells(i, 3) = ""
        For j = 0 To Len(CStr(Cells(i, 3)))
        temp = Mid(CStr(Cells(i, 3)), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 3)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        End Sub

        Voila un script qui devrais te permettre de parcourir les 3 colonnes de ton fichier.

        Ouvre vb via le raccourci clavier alt F11
        double clique sur la feuille que tu veux traiter
        colle le code que je t'ais donné
        puis click sur le logo play en haut

        En théorie, si tu reviens sur ton fichier de base, ca devrai t'avoir mis les cellules comportant des x dans la cellule 4 de la meme ligne

        Voila

        David
        0
      2. corben2a Messages postés 8 Statut Membre > David
         
        Re,

        J'ai suivi tes consignes mais mon fichier Excel n'est toujours pas modifié.
        Il se présente sous cette forme (pour l'exemple que je cherche à faire fonctionner!)

        A B C
        1 X1.8 Y23.1 Z153
        2 X132 Y3564 Z1.854
        3 X1.58 Y65.6 Z64.56
        ......


        Par la suite, il pourra y avoir des lignes sans x par exemple.

        Je ne sais pas ce que je ne fais pas bien........


        Merci de ton aide..

        Corben
        0
      3. David > corben2a Messages postés 8 Statut Membre
         
        Si t'es X sont toujours en majuscule, change dans les 3 condition de mon code.
        Tu mets un X majuscule à la place du x miniscule
        0
      4. David > corben2a Messages postés 8 Statut Membre
         
        Tiens mets ca meme
        Je balance tout en minuscule au moins, il n'y a pas de souci

        Sub verif_num()
        Dim i, temp
        i = 1
        While Not Cells(i, 1) = ""
        For j = 0 To Len(CStr(Cells(i, 1)))
        temp = Mid(LCase(CStr(Cells(i, 1))), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 1)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        i = 1
        While Not Cells(i, 2) = ""
        For j = 0 To Len(CStr(Cells(i, 2)))
        temp = Mid(LCase(CStr(Cells(i, 2))), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 2)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        i = 1
        While Not Cells(i, 3) = ""
        For j = 0 To Len(CStr(Cells(i, 3)))
        temp = Mid(LCase(CStr(Cells(i, 3))), j + 1, 1)
        If (temp = "x") Then
        Cells(i, 4) = Cells(i, 3)
        Exit For
        End If
        Next
        i = i + 1
        Wend
        End Sub


        David
        0
  3. corben2a Messages postés 8 Statut Membre
     
    Merci beaucoup, et excuse moi pour l'erreur grossière........... je ne savais même pas que les minuscules et majuscules étaient différenciées...

    A bientôt,

    Corben
    0
    1. David
       
      Pas de souci,

      A bientot

      David

      Ps : Pense à mettre résolue ;)
      0
  4. corben2a Messages postés 8 Statut Membre
     
    Ca fonctionne très bien, je vais essayer de modifier cela afin que ça prenne les valeurs de X lorsque le X se trouve dans la colonne B ou C car pour le moment ça ne prend que les valeurs de la colonne A.

    Merci pour ton aide,

    Corben
    0
    1. David
       
      Comment ca sur les colonnes B et C ??
      Le script parcour les colonnes A B et C normalement et écrit dans D
      Ca marche pas chez toi ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. corben2a Messages postés 8 Statut Membre
     
    Ouah, ça va tellement vite que c'est quasiment du chat ! Je mets résolu et continue mes recherches !

    Corben
    0
  7. corben2a Messages postés 8 Statut Membre
     
    Je ne sais même pas comment afficher l'état de la discussion en cours comme étant résolue !
    0
  8. corben2a Messages postés 8 Statut Membre
     
    Correction,

    En fait, cela fonctionne, c'est juste que dans mon fichier d'essais, certaines cellules sont vides alors je suppose que c'est pour cela que ça s'arrêtait de scanner (ex: ligne 10, rien en A, rien en B et X25 en C, ligne 11, rien en A, X25 en B et rien en C).

    Désolé pour l'erreur

    Corben
    0
    1. David
       
      Ok, tu me rassures la
      Pas de souci

      David
      0