Rechercher si plage cellule contient 1 élément d'array

Bonjour,

J'ai fait un code mais j'ai du mal à le manipuler car il produit une erreur de type.

Ce que je souhaite faire :

rechercher cellule par cellule si celle-ci contient 1 des éléments de l'array.

savoir si les cellules 2-3-4-5-6- 8-9-10-11-12-13-14-15 de la ligne variable

contiennent au moins 1 lettre ou 1 chiffre (l'ensemble étant dans un array).

Mon code est lourd, mais j'ai chercher

Sub checkfin()
    'désactiver macro événementielle'
    Application.EnableEvents = False

    'initialiser variable'
    Dim DernLigne As Integer
    DernLigne = Range("B1048576").End(xlUp).Row + 1
    If Range("H1048576").End(xlUp).Row + 1 > DernLigne Then
        DernLigne = Range("H1048576").End(xlUp).Row + 1
    End If

    'test de remise à zéro du format'
    If cellulevide(DernLigne) = True Then
        Range(Cells(DernLigne, 17), Cells(DernLigne, 23)).Select
        Range(Cells(DernLigne, 17), Cells(DernLigne, 23)).Activate
        Selection.ClearFormats
    End If

    Cells(7, 2).Select

    'ACTIVER MACRO EVENEMENTIELLE'
    Application.EnableEvents = True

    'SAUVEGARDE AUTOMATIQUE'
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
End Sub

Function cellulevide(DernLigne As Integer) As Boolean
    'initialisation variable'
    Dim colonne As Integer
    colonne = 2
    cellulevide = True
    Dim plage("A", "B", "C", "D", "E", "F", "G", "H", "I", _
                "J", "K", "l", "M", "N", "O", "P", "Q", "R", _
                "S", "T", "U", "V", "W", "X", "Y", "Z", "0", _
                "1", "2", "3", "4", "5", "6", "7", "8", "9") As Variant

    While colonne <= 15
        If Not (colonne = 7) Then
            If in_array(UCase(Cells(DernLigne, colonne).Value), plage) = True Then
                cellulevide = False
                colonne = 15
            End If
        End If
        colonne = colonne + 1
    Wend
End Function

Remerciement par avance

Bonsoir,

proposition de fonction qui retourne Vrai si la chaîne donnée en paramètre contient au moins un chiffre ou une lettre.

Function contchiflet(A)
If A Like "*[A-Z]*" Or A Like "*#*" Then contchiflet = True Else contchiflet = False
End Function

et intégrée dans ton code, cela pourrait donner ceci, à tester

Sub checkfin()
    'désactiver macro événementielle'
   Application.EnableEvents = False

    'initialiser variable'
   Dim DernLigne As Integer
    DernLigne = Range("B1048576").End(xlUp).Row + 1
    If Range("H1048576").End(xlUp).Row + 1 > DernLigne Then
        DernLigne = Range("H1048576").End(xlUp).Row + 1
    End If

    'test de remise à zéro du format'
   If cellulevide(DernLigne) = True Then
        Range(Cells(DernLigne, 17), Cells(DernLigne, 23)).ClearFormats
    End If

    Cells(7, 2).Select

    'ACTIVER MACRO EVENEMENTIELLE'
   Application.EnableEvents = True

    'SAUVEGARDE AUTOMATIQUE'
   Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
End Sub

Function cellulevide(DernLigne As Integer) As Boolean
    'initialisation variable'
   Dim colonne As Integer
    colonne = 2
    cellulevide = True

    While colonne <= 15
        If Not (colonne = 7) Then
            If contchiflet(UCase(Cells(DernLigne, colonne).Value)) = True Then
                cellulevide = False
                Exit Function
            End If
        End If
        colonne = colonne + 1
    Wend
End Function

Function contchiflet(A)
If A Like "*[A-Z]*" Or A Like "*#*" Then contchiflet = True Else contchiflet = False
End Function

C'est parfait, pourrais-tu m'expliquer ta fonction contchiflet() stp, je ne la comprends pas, le "*#*" surtout, et je me prenais vraiment la tête, mais quand on ne sais pas on ne sais pas.

Merci

Bonjour,

la fonction utilise l'opérateur de comparaison "Like" qui permet de vérifier si une chaîne de caractères correspond à un modèle donné.

*[A-Z]* permet de vérifier si la chaîne de caractères contient une lettre de A-Z

*#* permet de vérifier si la chaîne de caractère contient un chiffre.

pour le reste je te renvoie à l'aide sur l'instruction "Like".

Rechercher des sujets similaires à "rechercher plage contient element array"