Boucle VBA classeur

Fermé
bal13ski Messages postés 4 Date d'inscription jeudi 22 février 2018 Statut Membre Dernière intervention 23 février 2018 - 22 févr. 2018 à 10:59
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 févr. 2018 à 10:02
Bonjour,

J'ai réaliser une macro avec une boucle seulement elle ne marche que sur l'onglet ou je suis. J'aimerais qu'elle se réalise sur l'ensemble du classeur. Pouvez vous me dire quel est le problème ?
Pour info elle est copiée dans l'onglet ThisWorkBook

Sub testmacrobouclev2()
Dim fl As Worksheet
For Each fl In ThisWorkbook.Worksheets
If fl.Name <> "RECAPITULATIF" And fl.Name <> "Notes" Then
Application.MaxChange = 0.00001

Range("ChangeCell").ClearContents
Range("ChangeCell").Value = "50000"

Range("GoalSeekCell").goalseek Goal:=0, ChangingCell:=Range("ChangeCell")
End If
Next fl
End Sub

4 réponses

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
22 févr. 2018 à 13:27
Bonjour,
Range("ChangeCell").ClearContents
Vous ne pouvez pas avoir plusieurs cellules ou plages de cellules de meme nom......!!!!!
0
bal13ski Messages postés 4 Date d'inscription jeudi 22 février 2018 Statut Membre Dernière intervention 23 février 2018
22 févr. 2018 à 13:42
donc il faut que je renomme chaque cellule de chaque onglet différemment ?
La macro ne fait pas un traitement par onglet ?

S'il n'y a pas d'autres solutions, comment cela se traduit dans le code en admettant que je les appellent ChangeCell1, ChangeCell2...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié le 22 févr. 2018 à 14:37
Bonjour

Si tu veux garder le même nom dans plusieurs feuilles il faut préciser la zone d'action
par ex en feuille2

--


ainsi quand tu écris
sheets(2).range("Toto").select , tu vas dans la cellule C2 de la feuille 2
 Michel
0
bal13ski Messages postés 4 Date d'inscription jeudi 22 février 2018 Statut Membre Dernière intervention 23 février 2018
22 févr. 2018 à 15:18
Merci à tous pour votre aide,j'ai un peu de mal à tout saisir !

du coup qu'est ce qui cloche dans mon code, il me met "objet requis"?

Sub testmacrobouclev2()
Dim Sheet, ChangeCell, GoalSeekCell
For Each Sheet In Worksheets

If Sheet.Name <> "RECAPITULATIF" And fl.Name <> "Notes" Then
Sheet(5).Application.MaxChange = 0.00001

Sheet(5).Range("ChangeCell").ClearContents
Sheet(5).Range("ChangeCell").Value = "50000"

Sheet(5).Range("GoalSeekCell").goalseek Goal:=0, ChangingCell:=Sheet(5).Range("ChangeCell")

Sheet(3).Application.MaxChange = 0.00001

Sheet(3).Range("ChangeCell").ClearContents
Sheet(3).Range("ChangeCell").Value = "50000"

Sheet(3).Range("GoalSeekCell").goalseek Goal:=0, ChangingCell:=Sheet(3).Range("ChangeCell")

End If
Next Sheet

End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
23 févr. 2018 à 07:51
bonjour,

et si tu nous disais où se trouve l'erreur ? (surlignage en jaune)


0
bal13ski Messages postés 4 Date d'inscription jeudi 22 février 2018 Statut Membre Dernière intervention 23 février 2018
23 févr. 2018 à 09:38
Bonjour,

QUAnd je fais le pas à pas de la macro il coupe au moment de passer de :
If Sheet.Name <> "RECAPITULATIF" And fl.Name <> "Notes" Then
à
Sheet(5).Application.MaxChange = 0.00001

Il me met erreur d’exécution 424 : Objet requis

Je ne comprends pas ce qu'il me manque.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
23 févr. 2018 à 10:02
sheets(5).name

m^me chose sur les autres

Dim sheet inutile
de m^me, si Range("ChangeCell") est une cellule nommée inutile de déclarer "changecell" (c"est du texte)
pareil pour "GoalSeekCell"

comme tu sembles débuter sur les macros, il vaut lieux apprendre les bases auparavant
www.info-3000.com/vbvba/index.php
0