Retourner un tableau de string via une function - variables globales

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

arthurho

XLDnaute Junior
Bonjour,

Peut-on retourner un tableau de string avec une fonction dans une macro excel

Voici le code :
Code:
Private Function test()
'Accéder aux 4 variables de la fonction IndexFDMTITLE_DSSTEPORDER'
test = IndexFDMTITLE_DSSTEPORDER()
MsgBox LastCol
End Function

Public Function IndexFDMTITLE_DSSTEPORDER() As String()
'Determiner les index des colonnes FDM_TITLE et DS_STEP_ORDER'
'0: ColDS_STEP_ORDER'
'1: RowDS_STEP_ORDER'
'2: ColFDM_TITLE'
'3: LastCol'
Dim cell As Range
Dim exist_STEP_ORDER As Boolean
Dim ColFDM_TITLE As Long

'Initialisation des variables'
exist_STEP_ORDER = False

ColFDM_TITLE = 1

    With ActiveSheet
        LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        
    End With

    For Each cell In Range(Cells(1, 1), Cells(1, LastCol))
        If cell.Value = "DS_STEP_ORDER" Then
            ColDS_STEP_ORDER = cell.Column
            RowDS_STEP_ORDER = cell.Row
            exist_STEP_ORDER = True

        End If
        If cell.Value = "FDM_TITLE" Then
           Nombre_en_Lettre (cell.Column)
           ColFDM_TITLE = cell.Column
           
        End If
        
    Next cell
    
    If exist_STEP_ORDER = True Then
        Cells(RowDS_STEP_ORDER, ColDS_STEP_ORDER).EntireColumn.Delete
        ColFDM_TITLE = ColFDM_TITLE - 1
    End If
    
    IndexFDMTITLE_DSSTEPORDER(0) = ColDS_STEP_ORDER
    IndexFDMTITLE_DSSTEPORDER(1) = RowDS_STEP_ORDER
    IndexFDMTITLE_DSSTEPORDER(2) = ColFDM_TITLE
    IndexFDMTITLE_DSSTEPORDER(3) = LastCol
    
    MsgBox Nombre_en_Lettre(ColFDM_TITLE)
End Function

Function Nombre_en_Lettre(Nombre As Long) As String

If Nombre > 0 And Nombre < 257 Then
Nombre_en_Lettre = Split(Cells(Nombre).Address, "$")(1)
Else
Nombre_en_Lettre = Error(9) '> Valeur hors contexte
End If
End Function

La fonction IndexFDMTITLE_DSSTEPORDER permet de récupérer le numéro de la colonne et de la ligne où la cellule a pour valeur DS_STEP_ORDER.(RowDS_STEP_ORDER et ColDS_STEP_ORDER)
Elle permet aussi de récupérer le numéro de la colonne où la cellule a pour valeur FDM_TITLE.(ColFDM_TITLE)
Enfin, je souhaiterais également récupérer le numéro de la dernière cellule non vide avec la variable LastCol

J'ai donc inséré toutes ces variables dans un tableau de string que je souhaiterais utiliser dans ma macro globale. (function test()). J'obtiens malheureusement un message d'erreur lors de l'execution de la fonction

Avez vous une solution ?

Merci de votre aide , ci joint le fichier de test
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
153
Réponses
4
Affichages
177
Retour