Extraire les valeurs de cellules contenant x

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. 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. 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. 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. 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
    2. @corben2aRe

      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
    3. @DavidRe,

      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
    4. @corben2aSi 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
    5. @corben2aTiens 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. 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. Pas de souci,

      A bientot

      David

      Ps : Pense à mettre résolue ;)
      0
  4. 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. 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. Ouah, ça va tellement vite que c'est quasiment du chat ! Je mets résolu et continue mes recherches !

    Corben
    0
    1. Je ne sais même pas comment afficher l'état de la discussion en cours comme étant résolue !
      0
      1. 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. Ok, tu me rassures la
          Pas de souci

          David
          0