Boucle VBA classeur
bal13ski
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
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
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
Bonjour,
Range("ChangeCell").ClearContents
Vous ne pouvez pas avoir plusieurs cellules ou plages de cellules de meme nom......!!!!!
Range("ChangeCell").ClearContents
Vous ne pouvez pas avoir plusieurs cellules ou plages de cellules de meme nom......!!!!!
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
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
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
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
bonjour,
et si tu nous disais où se trouve l'erreur ? (surlignage en jaune)
et si tu nous disais où se trouve l'erreur ? (surlignage en jaune)
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
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
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...