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

Excel Discussion :

Ajouter un traitement VBA dans un tableau Excel [XL-2013]


Sujet :

Excel

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Ajouter un traitement VBA dans un tableau Excel
    Bonjour,

    J'ai développé une fonction en VBS que j'aimerai utilisé dans Excel. Pour cela, il me faut la convertir en VBA. Ensuite, j'aimerai utilisé cette fonction, comme les fonctions déjà présente dans Excel.

    comment puis-je faire ?

    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
    Function GenerateGroup(Source,Delimiter)
     
    	Dim GroupeCorrect
    	Dim Groupe
    	Dim mTab
     
    	Source = Trim(Source)
    	mTab = Split(Source, Delimiter)
    	Groupe = mTab(1)
     
    	If Len(Groupe) > 54 Then 
    		mTab = Split(Groupe, "\")
    		For i=0 to (UBound(mTab))
    			If Len(Groupe) > 4 Then 
    				GroupeCorrect = GroupeCorrect & "-" & Left(mTab(i), 4)
    			Else
    				GroupeCorrect = GroupeCorrect & "-" & mTab(i)
    			End If
    		Next
    		GenerateGroup = "XX-XXX-XXXXX"&UCase(replace(GroupeCorrect," ","_"))&"-RW"
    	Else
    		GenerateGroup = "XX-XXX-XXXXX-"&UCase(replace(replace(mTab(1),"\","-")," ","_"))&"-RW"
    	End If
     
    End Function
     
    GenerateGroup("H:\XXX\XXXXX\XXXXXXXX\XXXXXX\XXXX\XXXXXX\XXXXXXXX\XXXXXX\XXXX\XXXXX\XXXXXXX\XXXXX\XXXXX")
    Merci d'avance,
    Arnaud

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    je passerai par une fonction VBA, qui peuvent être invoquée directement dans une feuille de calcul comme des fonctions excel:
    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
    Function Traitement (PathFolder as string) as string
    Dim Groupe
    Dim mTab
    DIM GroupeCorrect
     
    PathFolder = "H:\Groupe\xxxxx\xx\xxxx\xxxxxx\xxxxxxxx\xxxxx\xxxxxxxx\xxxx\xxx"
    PathFolder = Trim(PathFolder)
    mTab = Split(PathFolder, "H:\Groupe\")
    Groupe = mTab(1)
     
    If Len(Groupe) > 54 Then 
    	mTab = Split(Groupe, "\")
    	For i=0 to (UBound(mTab))
    		If Len(Groupe) > 4 Then 
    			GroupeCorrect = GroupeCorrect & "-" & Left(mTab(i), 4)
    		Else
    			GroupeCorrect = GroupeCorrect & "-" & mTab(i)
    		End If
    	Next
    	GroupeFinal = "XX-XXX-XXXX"&UCase(replace(GroupeCorrect," ","_"))&"-RW"
    Else
    	GroupeFinal = "XX-XXX-XXXX-"&UCase(replace(replace(mTab(1),"\","-")," ","_"))&"-RW"
    End If
     
    Traitement=GroupeFinal
    end function

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Citation Envoyé par Benjîle Voir le message
    je passerai par une fonction VBA, qui peuvent être invoquée directement dans une feuille de calcul comme des fonctions excel:
    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
    Function Traitement (PathFolder as string) as string
    Dim Groupe
    Dim mTab
    DIM GroupeCorrect
     
    PathFolder = "H:\Groupe\xxxxx\xx\xxxx\xxxxxx\xxxxxxxx\xxxxx\xxxxxxxx\xxxx\xxx"
    PathFolder = Trim(PathFolder)
    mTab = Split(PathFolder, "H:\Groupe\")
    Groupe = mTab(1)
     
    If Len(Groupe) > 54 Then 
    	mTab = Split(Groupe, "\")
    	For i=0 to (UBound(mTab))
    		If Len(Groupe) > 4 Then 
    			GroupeCorrect = GroupeCorrect & "-" & Left(mTab(i), 4)
    		Else
    			GroupeCorrect = GroupeCorrect & "-" & mTab(i)
    		End If
    	Next
    	GroupeFinal = "XX-XXX-XXXX"&UCase(replace(GroupeCorrect," ","_"))&"-RW"
    Else
    	GroupeFinal = "XX-XXX-XXXX-"&UCase(replace(replace(mTab(1),"\","-")," ","_"))&"-RW"
    End If
     
    Traitement=GroupeFinal
    end function
    C'est justement ce que je pensais. C'est une macro ?

    J'ai optimisé mon script via tes indications et autres modifications :

    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
    Sub GenerateGroup(Source As String, Delimiter As String)
     
        Dim GroupeCorrect
        Dim Groupe
        Dim mTab
     
        Source = Trim(Source)
        mTab = Split(Source, Delimiter)
        Groupe = mTab(1)
     
        If Len(Groupe) > 54 Then
            mTab = Split(Groupe, "\")
            For i = 0 To (UBound(mTab))
                If Len(Groupe) > 4 Then
                    GroupeCorrect = GroupeCorrect & "-" & Left(mTab(i), 4)
                Else
                    GroupeCorrect = GroupeCorrect & "-" & mTab(i)
                End If
            Next
            GenerateGroup = "FR-OCT-GROUP" & UCase(Replace(GroupeCorrect, " ", "_")) & "-RW"
        Else
            GenerateGroup = "FR-OCT-GROUP-" & UCase(Replace(Replace(mTab(1), "\", "-"), " ", "_")) & "-RW"
        End If
     
    End Sub

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Impeccable, cela fonctionne très bien ! Un grand merci, je ne pensais pas qu'on pouvait faire cela avec Excel !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    de rien

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

Discussions similaires

  1. Ajout d'un bouton dans une feuille excel avec vba
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2008, 15h35
  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. [vb6] Ajouter une ligne dans un tableau excel
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h41
  4. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  5. [VBA] insérer un tableau Excel dans un formulaire
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/02/2006, 13h15

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