IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Changer valeur formule boucle vba multisheet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Par défaut Changer valeur formule boucle vba multisheet
    Bonjour,

    Après plusieurs recherches je ne trouve pas de réponse à ma question sans utiliser formularR1C1 que j'aimerais éviter.

    J'ai un tableau qui contient 30 lignes sur une sheet "tableau".
    Chaque ligne contient des informations qui une fois mises en forme sur une sheet "mise en forme" est prête à être imprimée sur une page A4.
    Je souhaiterais créer une sheet modèle "mise en forme" pour la 1ère ligne et créer une macro pour dupliquer cette sheet pour les 30 lignes.
    J'ai déjà la formule pour dupliquer ma sheet mais je n'ai aucune idée de ce qu'il faut mettre pour changer la ligne (ligne 1, puis 2 puis 3 etc.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Copie()
    Dim i
    For i = 1 To 10
        Sheets("Feuil1").Copy After:=Sheets(i)
        ActiveSheet.Name = "Position " & i
    Next i
    End Sub
    Je pense qu'il faudrait que je rajoute un cells (C,6).formular1c1="//ici je change la valeur de la formule pour aller chercher la ligne suivante//"

    Pourriez vous m'aider sur ce point s'il vous plaît?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Il y a plusieurs façon de faire suivant la façon dont le lien entre la feuille modèle et le tableau est établit.

    On pourrait très bien recopier les valeurs de chaque lignes vers la feuille modèle.
    (sans parler de formule :
    <cellule>.Value au lieu d'utiliser <cellule>.formula.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Par défaut
    Bonjour,

    Merci pour votre réponse rapide.
    J'ai une idée pour réussir à faire cela. Il faut juste qu'à chaque fois que je duplique la feuille modèle, je change la valeur d'une cellule (B2).
    J'ai essayé mais j'arrive à une erreur 400.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Copie()
    Dim i
    For i = 1 To 10
        Sheets("Feuil1").Copy After:=Sheets(i)
        ActiveSheet.Name = "Position " & i
        Cells(B, 2).Value = i
    Next i
    End Sub

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Voici un début.
    A partir d’un classeur qui contient une feuille "Tableau" et une feuille "Modele", pour chacune des 30 lignes du tableau, le code suivant effectue une copie de la feuille "Modele", puis copie la ligne correspondant au numéro d’itération.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Copie()
    Dim i As Byte
        For i = 1 To 30
            'Copie de la feuille "Modele"
            Sheets("Modele").Copy After:=Sheets(i)
            ActiveSheet.Name = "Position " & i
            'Copie de la ligne de la feuille "Tableau"
            Sheets("Tableau").Rows(i).Copy
            'Collage dans la feuille "Position i"
            ActiveSheet.Rows(1).PasteSpecial xlPasteValues
            Application.CutCopyMode = False
            Range("A1").Select
        Next i
    End Sub
    Cordialement.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Par défaut
    Génial merci beaucoup ça marche!
    C'est parfait!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/06/2014, 16h15
  2. [XL-2010] Boucle VBA ou formule avec Copier Coller Image
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/07/2013, 15h16
  3. [XL-2010] boucle vba pour une formule
    Par pilounet54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2012, 21h00
  4. Insertion Formule dans une Boucle VBA (bloomberg)
    Par Stufa789 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/04/2011, 00h45
  5. changer valeur du onsubmit ?
    Par elenel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/08/2005, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo