Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des boites
à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que sur ces
onglets, pas forcément contigus. Autre avantage: la manoeuvre pourrait donc
être exécutée à partir de n'importe quel onglet entre S1 et S52 (en cours
d'année, car vous aurez compris que c'est un fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des boites
à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que sur ces
onglets, pas forcément contigus. Autre avantage: la manoeuvre pourrait donc
être exécutée à partir de n'importe quel onglet entre S1 et S52 (en cours
d'année, car vous aurez compris que c'est un fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des boites
à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que sur ces
onglets, pas forcément contigus. Autre avantage: la manoeuvre pourrait donc
être exécutée à partir de n'importe quel onglet entre S1 et S52 (en cours
d'année, car vous aurez compris que c'est un fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
43bc2fb6$0$29228$8fcfb975@news.wanadoo.fr...
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur. Imaginons
aussi pour simplifier le code que le nom de tes CheckBoxes soient S1, S2,
S3 etc..et que tu aies appelé tes feuilles ( au sens nom dans les
propriétés donc codename et pas noms d'onglet S1, S2,S3, etc...). Enfin ,
un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que je
désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute que
sur ces onglets, pas forcément contigus. Autre avantage: la manoeuvre
pourrait donc être exécutée à partir de n'importe quel onglet entre S1 et
S52 (en cours d'année, car vous aurez compris que c'est un fichier
annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
checkbox> A+
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
checkbox> A+
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
43bc2fb6$0$29228$8fcfb975@news.wanadoo.fr...
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
checkbox> A+
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
A+Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
A+
Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
43bc2fb6$0$29228$8fcfb975@news.wanadoo.fr...
Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+
Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'
Si les codenames de tes feuilles ont bien la même chaine textuelle que les
noms des Checkboxes il n'y a aucune raison que ca plante. Si ca plante , à
mon humble avis, c'est qu'une fois, effectuée la boucle for de la fonction
reconcodename, il n'a pas trouvé de feuille dont le codename répond au nom
du Checkbox donc reconcodename ne renvoie rien et il est clair qu'on ne
peut trouver un range ("A1") sur un obejt non défini.Donc une erreur se
produit et le message d'erreur est celui que tu cites.
A+Salut Anonymous,
Oui tu as tout compris! Merci beaucoup.
J'étais loin loin loin du compte!
Mais le code plante sur
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
avec une erreur 91 (variable objet ou variable de bloc with non définie)
"anonymousA" a écrit dans le message de news:
43bc2fb6$0$29228$Bonjour et bonne année
Si j'ai tout compris, Imaginons que tu aies 52 Checkbox que tu puisses
cocher librement et 1 Textbox dans lequel tu rentres une valeur.
Imaginons aussi pour simplifier le code que le nom de tes CheckBoxes
soient S1, S2, S3 etc..et que tu aies appelé tes feuilles ( au sens nom
dans les propriétés donc codename et pas noms d'onglet S1, S2,S3,
etc...). Enfin , un commandbutton qui permet de valider le tout.
Dans ces conditions, dans toutes les feuilles correspondant par leurs
codenames aux chekcboxes que tu auras cochés, alors la valeur inscrite
dans le Textbox ira s'afficher dans les cellules A1 de chacune de ces
feuilles
Private Sub CommandButton1_Click()
Dim ctrl as control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
reconcodename(ctrl.Name).Range("A1") = Me.TextBox1.Value
End If
End If
Next
End Sub
Function reconcodename(namctrl As String) As Worksheet
Dim sh1 as worksheet
For Each sh1 In ThisWorkbook.worksheets
If sh1.CodeName = namctrl Then
Set reconcodename = sh1
Exit For
End If
Next
End Function
Enfin, si j'ai tout compris !!!
A+Bonjour à tous,
Premier fil de l'année, donc une bonne année à tous, avec santé et
sérénité.
Mon problème:
J'ai un classeur qui comporte 52 onglets (S1,S2...S52).
Avec un userform je vais renseigner Range("S1!A1")=Textbox1.value.
Je voudrais que cette valeur soit "recopiée" dans autant d'onglets que
je désire.
Le "top" serait, par exemple, que dans le même userform je clique des
boites à cocher appelées S1, S2,...S52 afin que la macro ne s'execute
que sur ces onglets, pas forcément contigus. Autre avantage: la
manoeuvre pourrait donc être exécutée à partir de n'importe quel onglet
entre S1 et S52 (en cours d'année, car vous aurez compris que c'est un
fichier annuel).
Je rêve?
Merci de me mettre sur une piste (voire plus!).
A tout'