Viser une plage d'une feuille pour l'utiliser sur une autre

Résolu
voyo83 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
voyo83 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Voila que je me suis pris pas mal la tête pour un petit détail mais qui a son importance.

Ce que je souhaite faire c'est utiliser l'application Countif (=NB.SI) afin de repérer combien d'occurence du mot "Tasting n° 1" j'ai dans la plage définie sur ma feuil1 pour l'afficher dans un msgbox sur ma feuil2 sans jamais activer ma feuil 1

Voici le code que j'ai pour le moment :

Dim occurrence As Integer
Sheets("Recapitulatif Tastings").Activate
occurrence = Application.WorksheetFunction.CountIf(Range("a3:a65536"), "Tasting n° 1")
MsgBox occurrence


Cela fonctionne mais m'active la feuil1 alors que je ne le souhaite pas, je veux du début à la fin de la procédure rester sur ma feuil2

J'ai essayé des codage du style :

Sheets("Recapitulatif Tastings").Range(("a3:a65536")

occurrence = Sheets("Recapitulatif Tastings").Application.WorksheetFunction.CountIf(Range("a3:a65536"), "Tasting n° 1")



Et je vous en passe

Voila si vous pouvez m'aider ce serait super !

Merci beaucoup pour vos réponses et s'il y a quelque chose que vous n'avez pas compris n'hésitez pas à me demander.

Merci et bonne journée.
A voir également:

4 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

occurrence = Sheets("Recapitulatif Tastings").Application.WorksheetFunction.CountIf(Sheets("Recapitulatif Tastings").Range("a3:a65536"), "Tasting n° 1")
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Pour "utiliser" une feuille à partir d'un autre, ou plus généralement un objet à partir d'un autre, tu peux utiliser un bloc With End With, comme ceci :

Dim occurrence As Integer
With Sheets("Recapitulatif Tastings")
    occurrence = Application.WorksheetFunction.CountIf(.Range("a3:a65536"), "Tasting n° 1")
    MsgBox occurrence
End With

!! ATTENTION!! Ici le range dont on a besoin, faisant référence à la feuille placée dans le bloc with, il convient de placer un point devant : .Range("A3:A65536")

Conseil : Si tes 65536 lignes ne sont pas toutes saisies, tu peux adapter ton range :
Dim DernLigne As Long
Dim occurrence As Integer

With Sheets("Recapitulatif Tastings")
    DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
    occurrence = Application.WorksheetFunction.CountIf(.Range("A3:A" & DernLigne), "Tasting n° 1")
    MsgBox occurrence
End With

0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Rebonjour,

avais oublie d'en enlever

occurrence = Application.WorksheetFunction.CountIf(Sheets("Recapitulatif Tastings").Range("a3:a65536"), "Tasting n° 1")
0
voyo83 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour vos réponses ça m'a beaucoup aidé, je suis content parce que j'étais pas complètement à l'inverse du raisonnement.

Encore merci.
0