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 :

grande valeur texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut grande valeur texte
    bjr tous le monde
    dans la feuille1 j'ai un tableau dont la colonne "C" contienne les données suivantes :
    N° SERIE
    D00208
    D00308
    D00408
    D00508
    .
    .
    .
    .
    D06208

    en comparent les 3 chiffres de la gauche càd (002;003;004;.......062) je voulais que la cellule J5 de la feuille2 m'affiche la grande valeur càd D06208
    POUVEZ VOUS M'AIDER SVP
    MERCI A TOUS.

  2. #2
    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
    Par défaut
    Alors fait ton test sur les trois ou quatre caractères de gauche "D.." ou "D..."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim c As Range, ValeurCherchee As String
        ValeurCherchee = "D06"
        With [Feuil1].Range("C1:A" & Range("C65536").End(xlUp).Row)
            Set c = .Find(ValeurCherchee, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
                :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
            If Not c Is Nothing Then [Feuil2].Range("J5") = c
        End With
    End Sub
    Pour ça tu dois utiliser LookAt:=xlpart

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut
    bjr
    merci ouskel'n'or
    je pense que je n'ai pas bien expliqué le problème
    j'ai plus que D06208 c'est pour cela j'ai dis que je veux comparer les 3 chiffres aprés le "D" et me renvoie la valeur sup
    merci.

  4. #4
    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
    Par défaut
    En relisant le sujet de la discussion, je m'aperçois que je n'ai pas répondu pas à ta question. (ton dernier message me le confirme...)
    Alors... Je ne vois quère d'autre solution que de passer par une colonne intermédiaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test2()
        With [Feuil1].Range("C1:A" & Range("C65536").End(xlUp).Row)
            Range("IV2").FormulaLocal = "=CNUM(DROITE(C2;NBCAR(C2)-1))"
            Range("IV2").Copy Range("IV2:IV" & Range("C65536").End(xlUp).Row)
        End With
        [Feuil2].Range("J5") = Application.Max([Feuil1].Range("IV2:IV" & [Feuil1].Range("C65536").End(xlUp).Row))
        [Feuil1].Range("IV2:IV" & Range("C65536").End(xlUp).Row).ClearContents
    End Sub
    Ceci est possible si ta colonne IV (la dernière d'une feuille de calculs) n'est pas utilisée.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut
    bjr
    excuse moi ouskel'n'or mais je n'ai pas compris ton code
    veuillez m'expliquer un peu.
    merci de ton aide.

  6. #6
    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
    Par défaut
    Est-ce que tu l'as testé et est-ce qu'il te convient ? Parce que sinon mon explication ne servira à rien
    Donc
    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
    Sub Test2()
        'Ta plage de N° de série : Commence en C1, se termine à la ...
        '... dernière ligne renseignée de la colonne C
        With [Feuil1].Range("C1:C" & Range("C65536").End(xlUp).Row)
            'Cette formule récupère la valeur de la cellule colonne C de la ligne 2
            'Je la colle Ligne 2 de la dernière colonne de la feuille de calculs et...
            Range("IV2").FormulaLocal = "=CNUM(DROITE(C2;NBCAR(C2)-1))"
            'je la colle sur toutes les cellules de la colonne jusqu'à la dernière ligne
            'renseignée de la colonne IV (iv)
            Range("IV2").Copy Range("IV2:IV" & Range("C65536").End(xlUp).Row)
        End With
        'J'ai maintenant toutes les valeurs dans la colonne iv
        'J'utilise la fonction Max pour trouver la valeur la plus grande de la colonne iv
        'et je l'affecte à la cellule J5 de la feuille 2
        [Feuil2].Range("J5") = Application.Max([Feuil1].Range("IV2:IV" & _
        [Feuil1].Range("C65536").End(xlUp).Row))
        'Je n'ai plus besoin des valeurs dans la colonne iv, alors je l'efface
        [Feuil1].Range("IV2:IV" & Range("C65536").End(xlUp).Row).ClearContents
    End Sub
    Est-ce bien ce que tu veux ?
    A+

    NB - Cette syntaxe ne fonctionne que si tu n'a pas modifié l'ordre des feuilles. Tu peux le vérifier dans l'éditeur VB : VBProject(Nom du classeur) où
    Feuil1(feuil1)
    Feuil2(feuil2)
    etc

  7. #7
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Si je peux me permettre ? Je peux ? alléééééé steuplééééé ? aah merci

    Si j'ai bien vu (en diagonal) le code, dans la cellule J5 il n'aura pas D06208 mais 6208 vu que tu récupères la valeur de la colonne IV qui aura comme résultat :

    D06208 - la première lettre --> 06208
    par défaut excel n'en fait qu'à sa tête et supprime les 0 en début de chiffre --> 6208

  8. #8
    Membre expérimenté
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Par défaut
    bonjour

    au lieu d'utiliser les macros, pourquoi ne pas utiliser une formule matricielle en J5 de la feuille2 ?

    en supposant que les données sont feuille1 de C5 à C18 par exemple, la formule en J5 de feuille2 serait :
    =MAX(CNUM(DROITE(GAUCHE(Feuil1!C5:C18;4);3)))
    il faut bien sûr la valider en appuyant simultanément sur les touches : Ctrl Shift et Entrée
    à plus

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

Discussions similaires

  1. [VBA-W]prendre des valeurs "texte" dans Excel
    Par teromah dans le forum VBA Word
    Réponses: 12
    Dernier message: 14/06/2007, 16h20
  2. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 17h39
  3. vba-Excel-Plus grande valeur d'une colonne
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 08/08/2006, 10h50
  4. [XPath]fonction récupérer plus grand valeur d'un attribut ?
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/05/2006, 14h27
  5. [Debutante] trouver les 5 plus grandes valeurs
    Par Sarrus dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/07/2005, 15h39

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