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 :

Fonction ou Procédure avec variant/objet/range comme argument


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
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut Fonction ou Procédure avec variant/objet/range comme argument
    Bonjour à la communauté.

    Je souhaite créer une procédure afin d'effectuer des vérifications sur le contenu d'une plage de cellule, dans chaque sheet d'un classeur.

    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
     
    sub MainProcedure
    For Each wsh In ActiveWorkbook.Worksheets
    For Each cell In wsh.Range("A1:" & LastCol & Lastrow)
    FormatCheck (cell)
    next cell
    next wsh
    end sud
     
    Sub FormatCheck(cell As variant)
                        'Remove space after and before value
                        If CStr(cell) <> Trim(cell) Then S_ReportError
     
                        'Check for each cell if it contains a formula
                        If cell.HasFormula = True Then
                            S_ReportError 
                        End If
     
                        'Check for each cell if it contains forbiden character
                        RegexPattern (cell)
                        If regX > 0 Then
                            S_ReportError
                        End If
     
                        'Check for each cell if it contains more than 2 decimal
                        If IsNumeric(cell) Then
                           If InStr(CStr(cell), ".") > 0 Then
                             digit = Len(CStr(cell)) - InStr(CStr(cell), ".")
                        If digit > 4 Then S_ReportError
                        end if
                        end if
    end sub

    Lorsque l'argument "cell" est passé à la procédure FormatCheck, celui ci ne contient plus que la valeur de la cellule et non tout ses arguments(telle que la formule par exemple)
    Nom : Capture1.PNG
Affichages : 110
Taille : 35,0 Ko
    Nom : Capture3.PNG
Affichages : 105
Taille : 1,2 Ko
    Dois-je changer le type de cell dans formatcheck pour conserver tout ses arguments ?
    Sub FormatCheck(cell As Object or Range) ?
    Dans ce cas j'ai une erreur 424 (Object required).

    Merci d'avance pour votre aide.

    Mandra.

  2. #2
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut
    Voici la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    sub MainProcedure
    dim cell as range
    For Each cell In Range("A1:" & LastCol & Lastrow)
    FormatCheck cell
    next cell
    end sub
     
    Sub FormatCheck(byval cell As range)
                        'Check for each cell if it contains a formula
                        If cell.HasFormula = True Then
                            S_ReportError 
                        End If
    end sub

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/04/2020, 14h42
  2. Problème avec un objet Range
    Par MagicJambond dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/08/2014, 12h33
  3. Fonctionement de plot avec un objet de type hclust
    Par khaledetoiliste dans le forum R
    Réponses: 1
    Dernier message: 25/03/2014, 10h35
  4. Réponses: 17
    Dernier message: 24/11/2006, 18h25
  5. Fonction ou procédure avec paramètres optionnels ?
    Par [Silk] dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2006, 13h55

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