Mettre du code répétitif en fonction
Résolu/Fermé
HugoHerbomez
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
-
Modifié par HugoHerbomez le 6/02/2017 à 15:03
HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 - 7 févr. 2017 à 09:07
HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 - 7 févr. 2017 à 09:07
A voir également:
- Mettre du code répétitif en fonction
- Code asci - Guide
- Code 80072efe ✓ - Forum Windows
- Fonction si et - Guide
- Freewifi secure code ✓ - Forum Réseau
- Netflix code - Guide
2 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
6 févr. 2017 à 16:00
6 févr. 2017 à 16:00
Bonjour,
Ne pas confondre FONCTIONS et ROUTINES ... autrement dit :
function et Sub
=> Transforme ta SUB INC en function inc(....)
Ne pas confondre FONCTIONS et ROUTINES ... autrement dit :
function et Sub
=> Transforme ta SUB INC en function inc(....)
HugoHerbomez
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
2
Modifié par HugoHerbomez le 7/02/2017 à 09:00
Modifié par HugoHerbomez le 7/02/2017 à 09:00
Je vais bien réécrire mon problème.
Alors pour l'instant j'ai ça, mais je n'entre même pas dans la fonction car la cellule 'A1' ne me donne même pas '1'. Et bien sûr je n'ai pas la range que je veux dans la variable 'rng'. Comment faire pour entrer dans cette satanée fonction? Le problème est-il au niveau de l'adressage?
De plus, la fonction doit être déclarée avec la feuille ou autre part?
Merci beaucoup
Bien cordialement,
Hugo
Alors pour l'instant j'ai ça, mais je n'entre même pas dans la fonction car la cellule 'A1' ne me donne même pas '1'. Et bien sûr je n'ai pas la range que je veux dans la variable 'rng'. Comment faire pour entrer dans cette satanée fonction? Le problème est-il au niveau de l'adressage?
Private Sub CommandButton1_Click()
Dim rng As Range
Dim i As Integer
moisS As String, anneeS As String
...
i = 12
'Copier les 11 dernières interventions
Set rng = search(anneeS, moisS, i)
...
End Sub
'Et la fonction
Function search(ByVal anneeS As String, ByVal moisS As String, ByRef i As Integer) As Range
Range("A1") = 1
Dim inc As Integer
inc = 2
While StrComp(Year(CDate(Range("B" & i & "").Value)), anneeS) = 1
i = i + inc
Wend
If Len(dateS) = 7 Then
While StrComp(month(CDate(Range("B" & i & "").Value)), moisS) = 1 And Len(month(CDate(Range("B" & i & "").Value))) = 2 And StrComp(Year(CDate(Range("B" & i & "").Value)), anneeS) = 0
i = i + inc
Wend
If moisS < 10 Then
moisS = Mid(moisS, 2, 1)
While StrComp(month(CDate(Range("B" & i & "").Value)), moisS) = 1 And StrComp(Year(CDate(Range("B" & i & "").Value)), anneeS) = 0
i = i + inc
Wend
End If
End If
search = Range("B" & i & ":L" & i + 10 * 2 + 1 & "")
End Function
De plus, la fonction doit être déclarée avec la feuille ou autre part?
Merci beaucoup
Bien cordialement,
Hugo
HugoHerbomez
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
2
Modifié par HugoHerbomez le 7/02/2017 à 09:07
Modifié par HugoHerbomez le 7/02/2017 à 09:07
Du coup j'ai résolu mon problème. Il ne faut pas mettre la fonction dans la même feuille où on l'appelle.
Il faut la mettre dans un module associé à la feuille si j'ai bien compris, en tout cas cela fonctionne pour moi.
Il faut la mettre dans un module associé à la feuille si j'ai bien compris, en tout cas cela fonctionne pour moi.
6 févr. 2017 à 16:07
Merki !
6 févr. 2017 à 17:01
Tu pourrais me donner un exemple s'il te plait? Si possible avec mon code!
Merci beaucoup