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 :

Recherche de numero de serie dans un tableau Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut Recherche de numero de serie dans un tableau Excel
    Bonjour,

    Dans un tableau Excel 2003 composé de vingt colonnes contenant chacune 20 lignes ( par exemple A1:T20 figurent des n° de série qui se lisent par colonne ( lecture verticale ) par exemple ma colonne a1 : a20 contiendra le numéro de série 1250 décomposé comme suit : la cellule A1 contient la valeur 1 la cellule A2 la valeur 2 ; la cellule A3 la valeur 5 ; la cellule A4 la valeur 0 .Il peut y avoir des vides entre les cellules . Je voudrais une macro qui colorierait la ou les colonnes qui contiendrait le numéro de série que j'indiquerais ( pour les besoins de la recherche) dans une colonne distincte par exemple la colonne V1:V10.
    Par exemple j'indiquerais le numéro 1257 dans ma "plage de critères" et je voudrais que le sytème me colorie la colonne correspondante en jaune si ce n° figure dans l'une ( ou plusieurs ) colonnes du tableau .

    Je ne suis pas très doué dans ce domaine .J'ai bien essayé avec certaines fonctions d'Excel ( nb.si() ; si.ou() et même en vba aec for each c in etc mais j'avoue que rien ne se passe comme je veux !

    Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Salut à toi,

    N'hésite pas à regarder directement les mises en forme conditionnelles !!

    Exemple :

    En A1 tu as ton critère de recherche
    En A3:E9 tu as ton tableau avec en colonne A tes numéros de série.
    Tu sélectionnes ton tableau et tu fais "Mise en forme conditionnelle" / Nouvelle Règle / Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué
    En formule, tu marques : =$A3=$A$1

    Ensuite, tu choisis un format, par exemple fond en rouge.

    Et voilà.

    Essaie et dis-moi ce que tu en penses.

    Edit : Quand tu sélectionnes ton tableau, vérifie que A3 est bien la cellule active de la sélection (la seule qui semble non sélectionnée)

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut recherche de numéro de serie dans un tableau
    Merci quentin

    Je me suis probablement mal expliqué .Je vais essayer d'être plus clair en reprenant tes exemples
    le tableau A3:E9 contient effectivement des n°de série mais pas qu'en colonne A .Pour faire simple ( enfin si j'y arrive !) on suppose que les cinq colonnes de ton tableau contiennent cinq n° de série. Mais le numéro de chaque colonne est composé de chiffres qui figurent individuellement dans une cellule .A1 par exemple ne contient pas un numéro de série entier mais que le premier chiffre dudit
    numéro ; A2 contient le deuxième chiffre dudit numéro ; A3 le troisième chiffre , etc pour constituer l'entièreté du n° sur toute la longueur de la colonne. Quant à mon critère de recherche que j'introduis manuellement, il est situé, dans une autre colonne par exemple la plage T1:T6 de la feuille .
    Merci de t'intéresser à mon problème

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Imaginons donc une plage de cellule $A$1:$E$10 où sont placés des chiffres en colonnes et dont la concaténation de ceux-ci compose un code que l'on cherche en tapant le code complet en H1. Si le code est trouvé, la colonne où se trouve les chiffres se colorie en jaune (cf l'illustration ci-dessous).

    Etapes à suivre et à adapter suivant le besoin
    1. Sélectionner la plage $A$1:$E$10
    2. Sélectionner le bouton Mise en forme conditionnelle du groupe Style de l'onglet [Accueil]
    3. Sélectionner Nouvelle règle... et choisir comme règle Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué
    4. Insérer la formule suivante
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =CNUM(A$1 & A$2 & A$3 & A$4 & A$5 & A$6 & A$7 & A$8 & A$9 & A$10)= $H$1
    5. Confirmer par OK


    Nom : 150904 dvp MFC - Code.jpg
Affichages : 596
Taille : 34,4 Ko

    Si le code contient une ou plusieurs lettres, il y a lieu de changer de formule, en enlevant la fonction CNUM et ce à condition que la référence contienne toujours au moins une lettre.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Une piste en VBA (on ne passe pas par la Mise en forme conditionnelle).
    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
     
    Sub aa()
    Dim R As Range
    Dim C As Range
    Dim R2 As Range
    Dim C2 As Range
    Dim Criteres As Range
    Dim i&
    Dim j&
    Dim A$
    '--- Sélection de la plage 20x20 à traiter ---
    Set R = Application.InputBox( _
      prompt:="Sélectionnez la plage 20 sur 20 à traiter", Type:=8)
    R.Interior.Color = xlNone
    '--- Plage des critères ---
    Set Criteres = Range("V1:V10")
    '--- Traitement ---
    For Each C In Criteres
      If C <> "" Then
        For j& = 1 To R.Columns.Count
          For i& = 1 To R.Rows.Count Step 4
            Set R2 = R.Range(R.Cells(i&, j&), R.Cells(i& + 3, j&))
            For Each C2 In R2
              A$ = A$ & C2
            Next C2
            If A$ = CStr(C) Then
              R2.Interior.Color = C.Interior.Color
            End If
            A$ = ""
          Next i&
        Next j&
      End If
    Next C
    End Sub
    Fichiers attachés Fichiers attachés

  6. #6
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Par défaut
    Bonsoir,

    Merci Philippe Tulliez et PMO2017 Je vais tester ce que vous m'avez indiqué

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

Discussions similaires

  1. Rechercher la plus proche valeur dans un tableau
    Par neoMatrix dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/05/2007, 11h45
  2. VBA-E Recherche des différents noms dans mon tableau excel
    Par tazmania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2007, 19h31
  3. rechercher la plus proche valeur dans un tableau ?
    Par Slumpy dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/04/2007, 14h06
  4. Réponses: 6
    Dernier message: 02/04/2007, 14h20
  5. Réponses: 1
    Dernier message: 14/06/2006, 18h56

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