aide sur simplification

zumye

XLDnaute Occasionnel
bonjour le forum
je cherche à allerger ma feuille originale qui contient une multitude de formule. le fichier devient lourd quand celle ci est copiée plus d'une vaingtaine de fois.

1er question
-existe t il une formule qui peut me compter directement le nombre de "P" que j'ai dans une colonne? sans mettre des conditions a chaque ligne comme j'ai actuellement.



2ème question
-j'ai cette formule : =SI(OU(I22<>"";J22<>"");((NBVAL(I22:O22))*($G22+AG 22+0,3));0)+SI(AD23="";0;(NBVAL(AA23:AF23)*(AG23-AG22)))
copiée de nombreuse fois dans une colonne.(AQ22:AQ114)

ex:
=SI(OU(I22<>"";J22<>"");((NBVAL(I22:O22))*($G22+AG 22+0,3));0)+SI(AD23="";0;(NBVAL(AA23:AF23)*(AG23-AG22)))
ensuite
=SI(OU(I25<>"";J25<>"");((NBVAL(I25:O25))*($G25+AG 25+0,3));0)+SI(AD26="";0;(NBVAL(AA26:AF26)*(AG26-AG25)))
etc
existe -il un moyen d'ecrire une macro qui pourrait remplacer ces longues formules?



3ème question-qui n'a rien a voir avec l'allegement:
je protege ma page original au démarrage par

Private Sub Workbook_Open()
Sheets("Original").Protect userinterfaceonly:=True
End Sub

par defaut il autorise juste l'utilisateur à selectionner les cellulles verrouilléé et dévérouillée , comment par défaut je pôurrai lui rajouter d'autre option comme "autoriser le masquage" ou autres?

merci
 

Jocelyn

XLDnaute Barbatruc
Re : aide sur simplification

Bonjour le Forum,
Bonjour zumye,

Petit passage pour réponse à la question 1 je laisse VBA a ceux qui connaissent

2 type de Formule

=nb.si(taplage;"P") ne permet de compter en rapport avec un seul critère

ou

=Sommeprod((taplage="P")*1) permet de compter par rapport a plusieurs critères

=Sommeprod((taplage="P")*(taplage=critère2)*1) jusqu'a 30 critères

Jocelyn
 

Creepy

XLDnaute Accro
Re : aide sur simplification

Bonjour le Forum, Zumye,

Alors pour ta dernière question deux solutions :

1 - Tu enregistres une macro et tu vas dans le menu outils > Protection > Protection de la feuille et tu jours avec les cases à cocher pour voir après en code ce que cela donne.

2 - Tu va dans l'aide VBA à "Protect"

@+

Creepy
 

kiki29

XLDnaute Barbatruc
Re : aide sur simplification

Salut, Question 1
A placer dans un Module Standard, puis sous Excel insertion fonction personnalisée
Sans doute à adapter
Code:
Option Explicit

Function CptLettre(ByVal Col As String, ByVal s As String) As Long
Dim LastRow As Long, NbRows As Long
Dim i As Long, Cpt As Long
    Application.Volatile
    NbRows = Range(Col & ":" & Col).Rows.Count
    LastRow = Range(Col & NbRows).End(xlUp).Row
    For i = 1 To LastRow
        If Range(Col & i) = s Then Cpt = Cpt + 1
    Next i
    CptLettre = Cpt
End Function

ce qui donnera par exemple =CptLettre("A";"P") pour la recherche de "P" dans la colonne A
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 317
Membres
103 515
dernier inscrit
Cherbil12345