Comptabiliser nombre de formes vides et non vides insérées

Bonjour,

Pour visualiser le plan de ma cave à vins, j'ai inséré des formes circulaires sur une feuille excel dont j'ai supprimé le quadrillage, dans lesquelles je note la référence de la bouteille concernée (B18 dans mon exemple). Je cherche à pouvoir comptabiliser le nombre de formes circulaires contenant une référence, ainsi que le nombre de formes circulaires vides. Pouvez vous me proposer la formule me permettant cela ? Je suis sur Excel pour Mac version 16.45.

D'avance un grand merci à toutes les bonnes volontés,

Cordialement,

Tenzor

17classeur1.xlsx (12.47 Ko)

Bonjour,

Voici une proposition avec ces fonctions personnalisées :

Function NB_BOUTEILLES() As Long
Application.Volatile
For Each sh In ActiveSheet.Shapes
    If sh.AutoShapeType = msoShapeOval Then
        If sh.TextEffect.Text <> "" Then NB_BOUTEILLES = NB_BOUTEILLES + 1
    End If
Next sh
End Function

Function NB_EMPLACEMENTS_VIDES() As Long
Application.Volatile
For Each sh In ActiveSheet.Shapes
    If sh.AutoShapeType = msoShapeOval Then
        If sh.TextEffect.Text = "" Then NB_EMPLACEMENTS_VIDES = NB_EMPLACEMENTS_VIDES + 1
    End If
Next sh
End Function

Function NB_EMPLACEMENTS() As Long
Application.Volatile
For Each sh In ActiveSheet.Shapes
    If sh.AutoShapeType = msoShapeOval Then NB_EMPLACEMENTS = NB_EMPLACEMENTS + 1
Next sh
End Function

Ces codes ne traitent que les ellipses et ne tiennent pas compte des autres types de forme.

Il faudra faire attention aux couleurs de police. Vous aviez un "V" en blanc qui trainait, ça peut semer le trouble.

20classeur1-1.xlsm (19.83 Ko)

Cdlt,

Bonjour,

C'est exactement ce que j'espérais, un grand merci pour et la rapidité et l'efficacité !

Par contre, comment m'y prendre pour insérer votre proposition à mon classeur ? Je connais un peu Excel, mais pas ce type de codage. Si vous aviez la gentillesse de m'aider, merci d'avance.

Cdlt,

Re,

Il faut déjà copier les codes en cliquant sur les 2 rectangles superposés (en haut à droite de la zone du code)

Ensuite, il faut insérer ces codes dans un module normal :

> Si l'onglet Développeur n'est pas déjà activé : Allez sur l'onglet Fichier/Options/Personnaliser le ruban/Cochez "Développeur".

> Rendez-vous sur cet onglet : Cliquez sur Visual Basic (alt+ F11). Dans le menu de l'éditeur : Insertion/Module.

> Collez les codes dans ce nouveau module.

Il faudra ensuite enregistrer le fichier sous le format xlsm (prenant en charge les macros).

NB : Ces fonctions ne dépendant pas directement d'un paramètre, elles ne sont recalculées que lors d'un recalcul de la feuille.

Cdlt,

Re,

J'ai bien noté et appliqué vos recommandations à mon fichier, merci. Par contre, dans votre fichier xlsm, le nombre de bouteilles est correct, mais à priori, le nombre d'emplacements vides est de 11 au lieu de 10, et le nombre d'emplacements est de 12 au lieu de 11 ? Je me trompe quelque part ? Merci de bien vouloir m'octroyer une partie de votre temps.

Cdlt,

Oui, en effet, vous avez raison. Visuellement, il y a 11 ellipses. Je pense qu'il y a 2 ellipses superposées. Je vais regarder...

Sur le fichier que vous avez joint, voici les formes présentes :

Oval 3
Oval 4
Oval 5
Oval 6
Oval 7
Oval 8
Oval 9
Oval 10
Oval 11
Oval 12
Oval 13
Oval 14

C'est mystérieux, j'ai tenté de retrouver la forme mais je n'ai pas réussi. En tout cas, ce code permet de la supprimer :

Sub cleaner()
ActiveSheet.Shapes("Oval 8").Delete
End Sub

Il s'agit de l'Oval 8^^

Problème résolu, je vous en remercie chaleureusement, c'est vraiment super !

Je vous en prie !

Bonne continuation !

Rechercher des sujets similaires à "comptabiliser nombre formes vides inserees"