exporter une fonction d'un classeur excel

pharell_j_fox

XLDnaute Nouveau
re à tous

Comment faire pour ajouter une formule présente dans un classeur excel
Dans la liste des formule disponible dans mon pc

Car j'aimerais l'utiliser sur un autre classeur avec d'autre formule qui elle même ne sont pas disponible dans ma liste de fonction disponible.

Voici le code(j'avou que je c pas si c'est ce qu'il vous faut pour m'aider)



Public Function ean13$(chaine$)
'V 1.0
'Paramètres : une chaine de 12 chiffres
'Retour : * une chaine qui, affichée avec la police EAN13.TTF, donne le code barre
' * une chaine vide si paramètre fourni incorrect
Dim i%, checksum%, first%, CodeBarre$, tableA As Boolean
ean13$ = ''
'Vérifier qu'il y a 12 caractères
If Len(chaine$) = 12 Then
'Et que ce sont bien des chiffres
For i% = 1 To 12
If Asc(Mid$(chaine$, i%, 1)) < 48 Or Asc(Mid$(chaine$, i%, 1)) > 57 Then
i% = 0
Exit For
End If
Next
If i% = 13 Then
'Calcul de la clé de contrôle
For i% = 2 To 12 Step 2
checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
Next
checksum% = checksum% * 3
For i% = 1 To 11 Step 2
checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
Next
chaine$ = chaine$ & (10 - checksum% Mod 10) Mod 10
'Le premier chiffre est pris tel quel, le deuxième vient de la table A
CodeBarre$ = Left$(chaine$, 1) & Chr$(65 + Val(Mid$(chaine$, 2, 1)))
first% = Val(Left$(chaine$, 1))
For i% = 3 To 7
tableA = False
Select Case i%
Case 3
Select Case first%
Case 0 To 3
tableA = True
End Select
Case 4
Select Case first%
Case 0, 4, 7, 8
tableA = True
End Select
Case 5
Select Case first%
Case 0, 1, 4, 5, 9
tableA = True
End Select
Case 6
Select Case first%
Case 0, 2, 5, 6, 7
tableA = True
End Select
Case 7
Select Case first%
Case 0, 3, 6, 8, 9
tableA = True
End Select
End Select
If tableA Then
CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(chaine$, i%, 1)))
Else
CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(chaine$, i%, 1)))
End If
Next
CodeBarre$ = CodeBarre$ & '*' 'Ajout séparateur central
For i% = 8 To 13
CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(chaine$, i%, 1)))
Next
CodeBarre$ = CodeBarre$ & '+' 'Ajout de la marque de fin
ean13$ = CodeBarre$
End If
End If
End Function


A+

Pharell
 

WILFRIED

XLDnaute Impliqué
Salut pharell, le forum.

Si tu veut pouvoir utilisé ta fonction dans n'importe quelle classeur il faut que le classeur contenant ta fonction soit ouvert.

Une méthode possible pour t'evité d'ouvrir ce classeur manuellement est d'enregistrer cette dernier dans le fichier perso.xls (c'est celui qui est créé quand tu enregistre une macro dans le classeur de macro personnelle (je ne sais plus où il ce trouve)).

A+
 

WILFRIED

XLDnaute Impliqué
Salut PHARELL

Pour pouvoir l'enregistrer dans ton classeur de macro personelle voici la seul méthode que je connaisse :

1) depuis excel, tu lance l'enregistreur de macro où tu choisit comme fichier contenant la macro (enregistrer dans) : classeur de macro personnellle. Cela va te creer ton fichier.

2) tu ouvre VBE, et tu explorer le perso.xls (qui devrait être ouvert)

3) tu fait un copier coller de ta fonction de l'un vers l'autre et voila.

Mais fait atttention si tu est en raiseau novel et que ton post est susceptible d'être télérincé pense à sauvegarder le perso.xls avec son chemin car en cas de télérinçage tu perdra ce fichier...

A+
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code VBA
Réponses
7
Affichages
344

Statistiques des forums

Discussions
300 761
Messages
1 987 019
Membres
209 681
dernier inscrit
Excelcrable