Création d'un script vériffiant les donnés.

Résolu/Fermé
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018 - 5 oct. 2018 à 14:34
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018 - 9 oct. 2018 à 14:04
Bonjour,

Voilà, cela fait maintenant quelques jours que j'essaye de créer une sorte de petit .exe ou une macro afin de vérifier toute une colonne à l'aide de conditions. Je cherche à faire un éxécutable ou un fichier qui serait réutilisable .Cela me ferait gagner un temps fou lors de la vérifications des donnés dans un tableau pour voir si il est bien remplie. Je m'explique :

J'aimerais créer un script qui fait que lorsque l'on clique dessus cela nous montre un message d'erreur avec le numéro de la ligne fausse, entouré ou surligné en rouge de préférence.

Exemple :





J'aimerais par exemple créer cela : Si la colonne B désignation contient plus de 20 caractères, alors surligner la ligne concerné et ouvrir une box affichant la ligne erroné. Ou bien, Si la colonne C Prix 1 contient des caractères $-€ etc.. alors surligner la ligne en rouge ouvrir une box et ainsi de suite.



Attention, je connais déjà la validation de données, et ce n'est pas ce que je veux. Je cherche une sorte de validation de données mais qu'on exécute et qui est sauvegardable sous forme de fichier.

Je n'ai pas besoins d'une solution avec un code tout fait, simplement d'une base et d'un exemple pour me repérer par la suite et le reproduire.

Merci d'avoir pris connaissance de ma requête, en vous souhaitant une bonne journée !
A voir également:

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
5 oct. 2018 à 14:57
Bonjour,

Je n'ai pas besoins d'une solution avec un code tout fait

C'est très bien.

Voir ceci pour faire une recherche dans une colonne:

https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel

et cela pour connaitre le nombre de caractères d'une cellule:

https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-A

pour mettre une ligne en couleur sers-toi de l'enregistreur de macro, tu auras ton code

voilà et bon courage

1
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
5 oct. 2018 à 15:01
Merci de ta réponse rapide Je vais voir tout cela et essayez de faire quelque chose avec. Je laisse le sujet en non-résolue pour le moment, au cas ou j'aurais un soucis durant mes recherches.

Bonne journée à toi !
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 5 oct. 2018 à 15:12
A ta disposition, pas de problème pour de nouvelles questions!

un excellent tuto pour démarrer:

https://www.excel-pratique.com/fr/vba/premiere_macro.php


@+
0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
8 oct. 2018 à 09:50
Hello,

J'ai passé le week-end à essayé de trouver quelque chose sans jamais tomber sur quelque chose de bon, si jamais tu as une idée, un exemple de code ou bien si une personne l'a je serais preneur pour m'en inspirer !

Encore merci !
0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
8 oct. 2018 à 09:52
Bonjour,

Up ! Après avoir passé le week-end à essayer quelque chose je suis toujours sur une mauvaise piste, si jamais quelqu'un à une idée, je suis preneur !

Bonne journée à vous !
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 oct. 2018 à 11:50
Voir ceci pour boucler sur une colonne:

https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/

et cela pour les couleurs:

https://www.excel-pratique.com/fr/vba/couleurs.php

ce qui donne:

Option Explicit
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Private Sub CommandButton1_Click()
   Columns("B:C").Font.ColorIndex = xlAutomatic 'rétabli la couleur auto
bouclecolonneB
bouclecolonneC
End Sub
'https://www.excel-pratique.com/fr/vba/couleurs.php
Sub bouclecolonneB()
    Set FL1 = Worksheets("Feuil1")
    NoCol = 2 'lecture de la colonne B
    For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
        Var = FL1.Cells(NoLig, NoCol)
       If Len(Var) > 20 Then
        Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
       MsgBox "ligne a trouvé"
       End If
    Next
    Set FL1 = Nothing
End Sub
'https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
Sub bouclecolonneC()
    Set FL1 = Worksheets("Feuil1")
    NoCol = 3 'lecture de la colonne C
    For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
        Var = FL1.Cells(NoLig, NoCol)
        If IsNumeric(Var) Then
        Else
        Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
       MsgBox "ligne a trouvé"
    End If
    Next
    Set FL1 = Nothing
End Sub



Voilà

@+ Le Pivert
0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018
8 oct. 2018 à 11:56
Hello !

C'est parfait merci beaucoup c'est ce que je voulais ! Je voulais savoir une dernière chose, est-ce possible de fusionner le code pour vérifier toutes les colonnes en même temps ou il est obligé d'avoir une macro par colonne ?

En tout cas, merci énormément, cela me fait gagner un temps fou.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 oct. 2018 à 13:00
voir l'exemple 4 pour parcourir plusieurs colonnes ici:

https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/

Mais tu ne peux lui demander de ne faire qu'une seule recherche!

Si tu veux que le code soit plus fluide si la recherche est longue mettre ceci au début:

Application.ScreenUpdating = False


et rétablir a la fin:

Application.ScreenUpdating = True


@+
0
Elhyra Messages postés 24 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 23 novembre 2018 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
8 oct. 2018 à 14:23
Okay, merci beaucoup du coup je les met au tout début du code et tout à la fin du code ?

Et une autre chose, par exemple pour sélectionner les autres colonnes je n'ai plus qu'a rajouter par exemple :


Sub bouclecolonneD()
Set FL1 = Worksheets("Feuil1")
NoCol = 4 'lecture de la colonne D
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If IsNumeric(Var) Then
Else
Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
MsgBox "ligne a trouvé"
End If
Next
Set FL1 = Nothing
End Sub



Puis remplacer ça :

 Private Sub CommandButton1_Click()
Columns("B:C").Font.ColorIndex = xlAutomatic 'rétabli la couleur auto
bouclecolonneB
bouclecolonneC
End Sub


Par ça ? :

Private Sub CommandButton1_Click()
Columns("B:C:D").Font.ColorIndex = xlAutomatic 'rétabli la couleur auto
bouclecolonneB
bouclecolonneC
bouclecolonneD
End Sub
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 oct. 2018 à 14:30
comme ceci:

Private Sub CommandButton1_Click()
Columns("B:D").Font.ColorIndex = xlAutomatic 'rétabli la couleur auto
bouclecolonneB
bouclecolonneC
bouclecolonneD
End Sub
0