Feuille vide renvoie message box 2

P

Pierre

Guest
Bonjour le fourm


J"ai eu, hier, de la part de l'un d'entre-vous, ce petit bout de code qui me permet d'avoir un message me disant qu'il n'y a aucune donnée dans la feuille sélectionnée, si effectivement il n'y en a pas, à l'inverse, la feuille s'ouvre.
En testant ce code via mon fichier destination, dans tous les cas de figure, la feuille est activée(avec ou sans données),
Une erreur s'est peut être glissée dans mon raisonnement, car, ce n'est pas un bouton de commande, mais,c'est au bouton rectangle, que j'affecte la macro.Le code serait il différent ?

Sub LeBoutonTiti()
TheTestingBlankSheet "feuil1"
End Sub


Sub TheTestingBlankSheet(TheSheet As String)
Dim UsedCell As String
Dim Cell As Range

With Sheets(TheSheet)
If UsedCell = "$f$1" Then
MsgBox "Il n'y a pas de données"
Else
.Activate
End If
End With
End Sub
PS : pour les 8 rectangles, j'ajoute ce code en le modifiant selon les données que je veux aller chercher, ou, est-ce possible en fonction du texte nommant le rectangle de dire en VB :
Ouvrir la feuille dont le nom est dans l'intitulé du bouton
Si pas de données dans la feuille alors message : pas de données, si non, ouverture de la feuille.
Je vous remercie
 
@

@+Thierry

Guest
Bonjour Pierre, le Forum

Tu pouvais rester dans le même Fil de Discussion => Lien supprimé

Tu devrais lire notre Charte pour comprendre comment être "XLD-Compliant".

Maintenant ton histoire est différente de celle d'hier "Pour corser le tout, j'ai dans chaque feuillle, en cellule D4: un intitulé

Si il n'y a aucune donnée mais qu'une shape (bouton rectangle !!!) alors uin code comme ceci devrait convenir :

Sub TousLesBoutonMenentAlaFeuille()
Dim WS As Worksheet
Dim TheButtonText As String
Set WS = ActiveSheet
TheButtonText = WS.Shapes(1).TextFrame.Characters.Text
TheTestingBlankSheet TheButtonText
End Sub

Sub TheTestingBlankSheet(TheSheet As String)
Dim UsedCell As String
Dim Cell As Range
On Error GoTo Out
With Sheets(TheSheet)
UsedCell = .UsedRange.Address
If UsedCell = "$A$1" Then
If Range("A1") = "" Then
MsgBox "Il n'y a pas de données en feuille " & TheSheet
End If
Else
.Activate
End If
End With
Exit Sub
Out:
MsgBox "Le Bouton " & TheSheet & " ne contient pas un nom de feuille"
End Sub


NB ceci est subordonné que tous tes Shapes "Bouton rectangle" contiennent bien un Nom de Feuille Valide ! et aussi que ce soit les seuls sur la feuille (Index Numéro 1 !!!) sinon il faut les nommer identiquement par exemple "BoutonSheet" et changer cette ligne :

TheButtonText = WS.Shapes(1).TextFrame.Characters.Text

Par :

TheButtonText = WS.Shapes("BoutonSheet").TextFrame.Characters.Text

Bonne Soirée
@+Thierry
 
P

Pierre

Guest
Bonsoir Thierry

J'ai effectivement posté un nouveau message car je ne pensais vraiment pas, que,me situant en deuxième page, j'aurais pu avoir une réponse à ce sujet qui m'est indispensable.
Pour y revenir justement, je pense qu'il y a un truc qui va pas car :
Mon rectangle 1, je l'ai nommé "titi"
une feuille parmis 8 autres est nommée titi
Mon intitulé du rectangle porte titi
dans ma feuille, en cellule f1, j'ai le nom de la feuille("titi") et pas d'autres données.

Dans tous les cas de figures, la feuille est ouverte(avec ou sans l'intitulé et avec ou sans données

J'ai pris ceci car je peux y mettre le nom du bouton et de la feuille
TheButtonText = WS.Shapes("titi").TextFrame.Characters.Text

je pense que c'est ici que ca ne vas pas :
UsedCell = .UsedRange.Address
If UsedCell = "$f1" Then(me renvoie dans vb a1=""
If Range("f1")= "" Then
me renvoie systématiquement vers le point.
MsgBox "Le Bouton " & TheSheet & " ne contient pas un nom de feuille"
J'avoue, je sèche un peu dessus,
A te lire
Merci
 
@

@+Thierry

Guest
Bonsoir Pierre

Je n'ai pas écrit "$F$1" même si ici on a un Grand Prix de F1 notoirement connu !!!!

Non j'ai écrit "$A$1".....

Essaie comme ceci.........

Je suis dans les parages, dis moi ensuite....

@+Thierry
 
@

@+Thierry

Guest
En fait je ne comprends plus trop...

Tu as une Shape("Titi") et tu as AUSSI "Titi" écrit en "F1" ? (çà devient très tordu cette histoire !!! lol)

Mais le VBA c'est pas tabou on y viendra bien à bout !!! lol

@+Thierry
 
@

@+Thierry

Guest
Re Bonsoir Pierre

Bon vu que je pense que tu n'es pas en ligne, j'ai quand même avancé et je t'ai fait une démo qui fonctionne d'après ce que j'ai compris !

Tu regarderas et tu me diras ...

Si par contre tu as une cellule remplie même avec un ! elle ne sera pas considérée comme vide...

Bonne Nuit
@+Thierry
 

Pièces jointes

  • TOTO_LOLO_LULU_LILI_ZAZA_TITI.zip
    12.1 KB · Affichages: 13
P

Pierre

Guest
Bon, finalement, avec je dois l'avouer, ton aide Thierry, je viens de trouver ? et ça marche, mais je garde sous le coude, tes précieux conseils:

Sub titi()
Dim feuille As String
feuille = " TITI"

With Sheets("TITI")


If .Range("E6") = "" Then
MsgBox " il n'y a pas de donnée", vbOKOnly, feuille
Exit Sub
Else
Sheets("TITI").Select
End If
End With

End Sub
Merci encore
 

Statistiques des forums

Discussions
312 356
Messages
2 087 564
Membres
103 594
dernier inscrit
edm