Formulaire de saisie

Bonjour

ci-joint mon code :

Option Explicit
'
' ModifBible Macro
'
'2 fonctions personnalisées
'(utilisables comme fonction excel)
'
'et une macro qui complète les colonnes AJ et AK sur base
'des numéros trouvés en colonne E

Function part1(r)
    On Error Resume Next
    part1 = Val(Mid(r, 2, InStr(2, r, "A") - 2))
    On Error GoTo 0
End Function
Function part2(r)
    On Error Resume Next
    part2 = Val(Mid(r, InStr(2, r, "A") + 1))
    On Error GoTo 0
End Function

Sub ModifBible()
Dim dl, i As Integer
Dim r As String

    dl = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To dl             'on démarre à la ligne 2
        r = Cells(i, 5)         'on s'occupe de la colonne E
        Cells(i, 36) = part1(r) 'on place dans la colonne AJ
        Cells(i, 37) = part2(r) 'on place dans la colonne AK
    Next i
    '
    'j'effectue un ordre de trie croissant sur les 2 colonne : AJ1 et AK1
    'd'abord la colonne AK1 et ensuite la colonne AJ1
    Range("A1").Resize(dl, 37).Sort key1:=Range("AK1"), order1:=xlAscending, key2:=Range("AJ1"), order2:=xlAscending, Header:=xlYes

'
End Sub

J'ai un "Bouton/Icone" personnalisé dans mon ruban Excel. Quand je clique dessus, il démarre ma macro ci-dessus.

Le soucis est que ma macro n'est valable que pour la lettre "A" comme indiqué dans mes 2 fonctions.

Je voudrais pouvoir par le biais d'un formulaire de saisie, mettre une autre lettre que le "A".

Lorsque je vais cliqué sur le bouton de mon ruban personnalisé, cela lancera un petit formulaire qui me permettra de rentrer une lettre au choix et ensuite je valide, et à ce moment là cela lance mon code ci-dessus.

Comment intégrer cela ?

Bonsoir,

le "A" vous le remplacer par A, puis en tête de vos codes vous définissez votre variable A en Public :
Public A As Variant

Ensuite, suite au clic sur votre icône du ruban en tête de la procédure qui est lancée vous mettez en place un InputBox :
A=InputBox("Veuillez saisir la lettre voulue","Demande de lettre")

Et le tour est joué... Ce qui donne :

Option Explicit
'
' ModifBible Macro
'
'2 fonctions personnalisées
'(utilisables comme fonction excel)
'
'et une macro qui complète les colonnes AJ et AK sur base
'des numéros trouvés en colonne E
Public A As Variant

Function part1(r)
    On Error Resume Next
    part1 = Val(Mid(r, 2, InStr(2, r, A) - 2))
    On Error GoTo 0
End Function
Function part2(r)
    On Error Resume Next
    part2 = Val(Mid(r, InStr(2, r, A) + 1))
    On Error GoTo 0
End Function

Sub ModifBible()
Dim dl, i As Integer
Dim r As String
A=InputBox("Veuillez indiquez une lettre :","Demande de lettre")
    dl = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To dl             'on démarre à la ligne 2
        r = Cells(i, 5)         'on s'occupe de la colonne E
        Cells(i, 36) = part1(r) 'on place dans la colonne AJ
        Cells(i, 37) = part2(r) 'on place dans la colonne AK
    Next i
    '
    'j'effectue un ordre de trie croissant sur les 2 colonne : AJ1 et AK1
    'd'abord la colonne AK1 et ensuite la colonne AJ1
    Range("A1").Resize(dl, 37).Sort key1:=Range("AK1"), order1:=xlAscending, key2:=Range("AJ1"), order2:=xlAscending, Header:=xlYes

'
End Sub

@ bientôt

LouReeD

Rechercher des sujets similaires à "formulaire saisie"