CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
30 mai 2007 à 15:58
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
30 mai 2007 à 22:54
Bonjour,
La macro ci-dessous (suppression d'une feuille dont le nom est dans une liste sur une page de sommaire) fonctionne parfaitement pour toute valeur non exclusivement numérique...
Si la valeur est (f) = Q123 : c'est bon,
Si la valeur est (f) = 123 : ça plante !
J'aimerais savoir où je me trompe.
f = ActiveCell.Value 'reprise de la valeur de la sélection
Range("AB2").Value = f 'copie de la valeur sélectionnée en "AB2"
v = Range("AB1").Value 'reprise de l'analyse faite par la formule en "AB1" (=RECHERCHEV...)
If (v) = "N" Then' la valeur ne correspond à aucune de la liste des feuilles
ChoixFaux.Show ' Avertissement d'erreur
Application.Run "RetourAuSommaire" ' retour au sommaire sans changement
Else ' la valeur correspond à une feuille dans la liste
Worksheets(Sheets(f).Name).Visible = True 'La feuille correspondante s'affiche, PLANTAGE pour (f) 123456 (mais OK pour (f) Q1213456)
Worksheets(Sheets(f).Name).Select ' est sélectionnée,
Application.DisplayAlerts = False' est autorisée à être affacée sans rappel,
ActiveWindow.SelectedSheets.Delete ' et est effacée définitivement (retour au sommaire)
Merci pour toute aide
A voir également:
PB d'affichage d' une feuille dont le nom est un nombre
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 mai 2007 à 16:13
Je crois (je dis bien crois car je ne connais par VBA) savoir que pour VBA : Sheets(f)correspond à la feuille de rang f et pas à la feuille dont le om a la valeur de f ...
Il me semble que tu peux accéder à une feuille par son numéro d'ordre 1), par son nom interne 2), ou par son nom externe 3).
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 20181 30 mai 2007 à 22:50
Bingo Mortalino !
Voilà le code ENFIN corrigé grâce à tous (et toi plus particulièrement)
f = ActiveCell.Value 'reprise de la valeur de la sélection
Range("AB2").Value = f
'copie de la valeur sélectionnée en "AB2"
Dim v asstring
v = Range("AB1").Value 'reprise de l'analyse faite par la formule en "AB1" (= RECHERCHEV...)
If (v) = "N" Then
' la valeur ne correspond à aucune de la liste des feuilles
ChoixFaux.Show
' Avertissement d'erreur
Application.Run "RetourAuSommaire" ' retour au sommaire sans changement
Else ' la valeur correspond à une feuille dans la liste
Worksheets(Sheets( v ).Name).Visible = True
'La feuille correspondante s'affiche,
Worksheets(Sheets(v
).Name).Select ' est sélectionnée,
Application.DisplayAlerts = False
' est autorisée à être affacée sans rappel,
ActiveWindow.SelectedSheets.Delete
' et est effacée définitivement (retour au sommaire)
Merci à vous
Vous n’avez pas trouvé la réponse que vous recherchez ?