Boucle VBA classeur

bal13ski Messages postés 5 Statut Membre -  
michel_m Messages postés 18903 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

4 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Range("ChangeCell").ClearContents
    Vous ne pouvez pas avoir plusieurs cellules ou plages de cellules de meme nom......!!!!!
    0
    1. bal13ski Messages postés 5 Statut Membre
       
      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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. bal13ski Messages postés 5 Statut Membre
       
      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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour,

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

    0
    1. bal13ski Messages postés 5 Statut Membre
       
      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
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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