Fonction si avec cellule contenant image comme condition.
Dr Zero
Messages postés
1058
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, tout le monde
Aux esprit brillant et/ou tortueux Alors.Ceux qui trouvent que des neurones qui se reposent est un gachi pour l'humanité :: :))).
Mon problème est le suivant :
J'ai des image qui s'intègrent à une cellule ou plutôt disons liées à une cellule. Ce que je souhaite c'est que dans la cellule B, Excel m'affiche 1 si la cellule A contient une image.
Ah,disons que je préfère des fonction excel car nul en VBA, mais s'il le faut je m'y mettrai.
dans l'attente de vos suggestion. Cordiallement.
Aux esprit brillant et/ou tortueux Alors.Ceux qui trouvent que des neurones qui se reposent est un gachi pour l'humanité :: :))).
Mon problème est le suivant :
J'ai des image qui s'intègrent à une cellule ou plutôt disons liées à une cellule. Ce que je souhaite c'est que dans la cellule B, Excel m'affiche 1 si la cellule A contient une image.
Ah,disons que je préfère des fonction excel car nul en VBA, mais s'il le faut je m'y mettrai.
dans l'attente de vos suggestion. Cordiallement.
A voir également:
- Image si
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
- Reduire taille image - Guide
- Légender une image - Guide
- Image gratuite - Guide
4 réponses
Bonjour,
Faudrait voir un bout de ton fichier pour voir la façon dont tu insères tes images
pour joindre ton fichier, utilise ce lien
https://www.cjoint.com/
Faudrait voir un bout de ton fichier pour voir la façon dont tu insères tes images
pour joindre ton fichier, utilise ce lien
https://www.cjoint.com/
Merci de l'intérêt porté à mon poste.
J'ai fais des commentaire dans le fichier Excel ci joint. Attend patiemment tes idées.
Voici le lien avec mon exemple :
https://www.cjoint.com/?0CjwxkcRotH
J'ai fais des commentaire dans le fichier Excel ci joint. Attend patiemment tes idées.
Voici le lien avec mon exemple :
https://www.cjoint.com/?0CjwxkcRotH
Re,
j'espère avoir compris la demande parce que je m'absente 2 jours
=NBVAL(C3:F3)
si les cellules sont vides, le résultat est 0 que tu peux éviter en complétant la formule
=SI(NBVAL(C3:F3)=0;"";NBVAL(C3:F3))
j'espère avoir compris la demande parce que je m'absente 2 jours
=NBVAL(C3:F3)
si les cellules sont vides, le résultat est 0 que tu peux éviter en complétant la formule
=SI(NBVAL(C3:F3)=0;"";NBVAL(C3:F3))
Bonsoir Mike-31
Au fait l'image qui apparait dans la cellule ne permet pas à excel de considérer que la cellule contient une information, donc avec le si() comme dans mon exemple, ou avec les fonction NB (NBVAL comme proposé ou NB.VIDE) excel ne voit que dalle même si l'image est lié à la cellule.
Exp avec ta formule : NBVAL(C3:F3) renvoie toujours 0 même si j'ai une image dans le cellule D3.
c'est pour ce que je tourne en rond.
D'autres Idées :)))
cordialement
Au fait l'image qui apparait dans la cellule ne permet pas à excel de considérer que la cellule contient une information, donc avec le si() comme dans mon exemple, ou avec les fonction NB (NBVAL comme proposé ou NB.VIDE) excel ne voit que dalle même si l'image est lié à la cellule.
Exp avec ta formule : NBVAL(C3:F3) renvoie toujours 0 même si j'ai une image dans le cellule D3.
c'est pour ce que je tourne en rond.
D'autres Idées :)))
cordialement
Bonjour,
Ton fichier s'ouvre mal sur excel 2010, pas d'images dedans. Ok sur 2003
Tu n'as pas le choix, vba obligatoire.
Par fonction personnalisée à mettre dans un module standard :
Le coin supérieur gauche doit être dans la cellule.
Faire F9 pour rafraichir le compte.
https://www.cjoint.com/c/ECktHgwTCMo
eric
Ton fichier s'ouvre mal sur excel 2010, pas d'images dedans. Ok sur 2003
Tu n'as pas le choix, vba obligatoire.
Par fonction personnalisée à mettre dans un module standard :
Function nbImages(plage As Range) Dim img As Picture Application.Volatile For Each img In plage.Parent.Pictures If Not Intersect(img.TopLeftCell, plage) Is Nothing Then nbImages = nbImages + 1 Next img End Function
Le coin supérieur gauche doit être dans la cellule.
Faire F9 pour rafraichir le compte.
https://www.cjoint.com/c/ECktHgwTCMo
eric
Hello
Merci a toi eriiic. Je vais voir ça et je demanderai certainement des conseils car en matière de macro je suis largué. Mais il faut un début à tout.
En effet pas d'ouverture avec le 2010 mais pas de Pb avec le 207 ??? les image sont créer pas un écriture sur écran tactile.
A demain le temps de voir et comprendre (ce que je peu) pour poser des question de débutant :))).
Finalement une chose : je ne comprends pas ou plutôt sais pas comment faire : Par fonction personnalisée à mettre dans un module standard :
En plus dans votre formule colonne G j'ai #NOM (je présume que c'est en rapport avec le module standard à faire ??)
Merci d'avance pour ta patience.
Merci a toi eriiic. Je vais voir ça et je demanderai certainement des conseils car en matière de macro je suis largué. Mais il faut un début à tout.
En effet pas d'ouverture avec le 2010 mais pas de Pb avec le 207 ??? les image sont créer pas un écriture sur écran tactile.
A demain le temps de voir et comprendre (ce que je peu) pour poser des question de débutant :))).
Finalement une chose : je ne comprends pas ou plutôt sais pas comment faire : Par fonction personnalisée à mettre dans un module standard :
En plus dans votre formule colonne G j'ai #NOM (je présume que c'est en rapport avec le module standard à faire ??)
Merci d'avance pour ta patience.
Bonjour,
Alt+F11 pour ouvrir l'éditeur VBE.
Sur le projet de ton classeur à gauche, clic-droit et 'Insertion / Module'.
Coller le code dans dans cette nouvelle fenêtre à droite.
Ca y est, ta nouvelle fonction est disponible sur les feuilles.
N'oublie pas F9 pour rafraichir. L'ajout ou le déplacement d'image n'est pas détectable par VBA.
eric
Alt+F11 pour ouvrir l'éditeur VBE.
Sur le projet de ton classeur à gauche, clic-droit et 'Insertion / Module'.
Coller le code dans dans cette nouvelle fenêtre à droite.
Ca y est, ta nouvelle fonction est disponible sur les feuilles.
N'oublie pas F9 pour rafraichir. L'ajout ou le déplacement d'image n'est pas détectable par VBA.
eric
Salut Éric,
J'ai de plus en plus la certitude que 2010 est bogué : pour moi, il voit très bien les images mais ta fonction ne les voit pas alors que sur 2007 tout est nickel.
Après les modifs de taille dans les listbox, les copies dans les tableaux, les suppression de lignes, etc, je commence à atteindre l'overdose.
J'ai de plus en plus la certitude que 2010 est bogué : pour moi, il voit très bien les images mais ta fonction ne les voit pas alors que sur 2007 tout est nickel.
Après les modifs de taille dans les listbox, les copies dans les tableaux, les suppression de lignes, etc, je commence à atteindre l'overdose.
Salut gb,
Effectivement, je n'avais pas testé le résultat sur 2010.
J'ai creusé un peu. En fait ce ne sont des images que sur 2003.
Sur les autres versions ce sont des InkComment. J'ai l'impression que ce sont des objets spécifiques à la saisie graphique manuelle.
Donc nouvelle version, testée sur 2003, 2010, 2013. A voir sur 2007.
J'ai failli t'appeler au secours hier soir :-) Mais en rédigeant le post détaillé une piste m'est apparue et c'était la bonne.
@Dr Zero : si tu n'as pas des centaines d'objets sur la feuille on peut ajouter un truc pour que la fonction se mette à jour sur la sélection d'une cellule quelconque.
eric
Effectivement, je n'avais pas testé le résultat sur 2010.
J'ai creusé un peu. En fait ce ne sont des images que sur 2003.
Sur les autres versions ce sont des InkComment. J'ai l'impression que ce sont des objets spécifiques à la saisie graphique manuelle.
Donc nouvelle version, testée sur 2003, 2010, 2013. A voir sur 2007.
Function nbImages(plage As Range) Dim obj As Shape Application.Volatile For Each obj In plage.Parent.Shapes Debug.Print obj.Type, obj.Name, obj.AutoShapeType If obj.Type = msoInkComment Or obj.Type = msoPicture Then ' msoPicture sur 2003, msoInkComment sur 2007-2013 If Not Intersect(obj.TopLeftCell, plage) Is Nothing Then nbImages = nbImages + 1 End If Next obj End Function
J'ai failli t'appeler au secours hier soir :-) Mais en rédigeant le post détaillé une piste m'est apparue et c'était la bonne.
@Dr Zero : si tu n'as pas des centaines d'objets sur la feuille on peut ajouter un truc pour que la fonction se mette à jour sur la sélection d'une cellule quelconque.
eric