Résolu - Définition de variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Victor21

XLDnaute Barbatruc
Supporter XLD
Bonjour.

Des feuilles dans mon classeur, appelées Sep 10, Oct 10...
En A1 de chaque feuille :=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
Une liste de ces feuilles sur la feuille "BDD" avec en colonne : ='Sept 10'!A1, 'Oct 10!A1... nommée "Mois"
Une validation par liste ("Mois") sur la feuile "Carte d'absence" en B12
Je souhaite affecter le nom de la feuille choisie à une variable (ShtM) dans une macro pour traiter la feuille choisie.

ShtM.Name = Worksheets("Carte d'absence").Range("B12").Value
me renvoie une erreur.

j'ai essayé les guillemets simples à cause du nom composé, sans résultat.
Dois-je utiliser l'équivalent d'indirect, et si oui, quelle serait la syntaxe ?

Merci à qui pourra m'aider.

Cordialement,
 
Dernière édition:
Re : Définition de variable

Bonjour,

tu ne nous en dis pas beaucoup, ta variable est elle bien déclarée et de quel type ? est-elle initialisé ? la cellule contient elle une valeur acceptable pour un nom de feuille ? cette même feuille n'existe t-elle pas déjà ?? Quel type d'erreur est renvoyée ? Aarf, j'ai plus de questions que de réponse...

bon après midi
@+
 
Re : Définition de variable

Bonjour, Pierrot93, Hasco.
Code:
 'Variables
    Dim c As Range
    Dim ShtA As String
    Dim ShtM As String


    ShtA = ActiveSheet.Name
    ShtM = Worksheets("Carte d'absence").Range("B12").Value    'nom de la feuille du mois choisi


    Application.ScreenUpdating = False    'remettre à true en fin de macro
    Application.DisplayAlerts = False    'inutile de remettre à true

    For Each c In ShtM.Range("BR3:B38")
        If c.Value = 0 Then End
        c.Offset(, columnOffset:=68).Copy
        ShtA.Activate
        ShtA.Range("B18").PasteSpecial Paste:=xlPasteValues 'puis B37, puis B56
        Application.CutCopyMode = False
    Next c

    ActiveWindow.SelectedSheets.PrintPreview    'PrintOut Copies:=1

    End
    ShtA.Select
    Application.ScreenUpdating = True
End Sub

Message lors du pas à pas: erreur de compilation, qualificateur incorrect. Shtm est surligné :
For Each c In ShtM.Range("BR3:B38")

La feuille existe, son nom est en B12

Le but est de remplir un formulaire avec 3 noms (en B18, B37, B56), de l'imprimer, et de continuer avec les 3 noms suivants. Les noms sont récupérés dans ShtM en col B de B7 à B38 si sur la même ligne en col BR la valeur est >0.

Merci de votre intérêt, cordialement,
 
Re : Définition de variable

Re,
Pierrot🙂🙂🙂

Sans doute qu'avec la ligne suivante cela le fera:

For Each c In Sheets(ShtM).Range("BR3:B38")

Pareil en Bas

Sheets(shTA).activate.

Si shtM et shtA représente bien des noms de feuilles

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
2
Affichages
1 K
Archeon
A
N
Réponses
17
Affichages
3 K
ninajams
N
Réponses
0
Affichages
2 K
Réponses
0
Affichages
703
S
  • Question Question
Réponses
2
Affichages
2 K
sardaucar
S
F
Réponses
0
Affichages
866
fred2705
F
N
Réponses
10
Affichages
2 K
N
P
Réponses
2
Affichages
3 K
pauline6172
P
D
Réponses
9
Affichages
2 K
D
Retour