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 :

Problème EXCEL VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème EXCEL VBA
    Bonjour,

    Je travaille sur Excel et je veux créer une macro afin de créer automatiquement des feuilles à partir d'une première feuille de base
    Voici pour le moment le code que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim a As Integer
    For a = 1 To 20
    ActiveWorkbook.Sheets("Cas1").Copy after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = a
    Cells(2, 3) = "='Puissance sdv'!E4"
    Cells(3, 3) = "='Puissance sdv'!B7"
    Cells(3, 4) = "='Puissance sdv'!E7"
    Cells(4, 3) = "='Puissance sdv'!B6"
    Cells(4, 4) = "='Puissance sdv'!E6"
    Cells(7, 3) = "='Puissance sdv'!$E$16"
    Cells(7, 9) = "='Puissance sdv'!$E$18"
    Next
    End Sub
    Le problème que j'ai c'est que la cellule 2,3 par exemple correspond à 'Puissance sdv'!E4 pour la feuille 1, mais pour la feuille 2, il s'agit de 'Puissance sdv'!F4, etc... Comment effectuer ce décalage?

    Merci par avance pour vos réponses

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    utilise la formulation en coordonées relative r1c1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim a As Integer
    For a = 1 To 20
    ActiveWorkbook.Sheets("Cas1").Copy after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = a
    Cells(2, 3).FormulaR1C1 = "='Puissance sdv'!R[2]C[a + 1]"
    Next a
    End Sub
    R represente le décalage en ligne, et C le decalage en colone, ce qui va permetre d'utiliser une variable. dans ton cas, tu peux utiliser a en lui ajoutant ou retirant une valeur que tu défini. pour trouver facilement la valeur adéquate, tu enregistre une macro, tout simplement, généralement, c'est directement en r1c1.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Ca ne marche pas
    Il est indiqué erreur d'exécution 1004
    Erreur définié par l'application ou par l'objet

    Que faire ??

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    ouai, j'ai vu, j'ai pas la réponse
    si c'est une créatrion dont tu n'as besoin qu'une seule fois, tu as cette solution
    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 essais()
    Dim a As Integer
    For a = 1 To 20
    ActiveWorkbook.Sheets("Cas1").Copy after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = a
    Cells(2, 3) = Worksheets("Puissance sdv").Cells(a + 3, 5)
    Cells(3, 3) = Worksheets("Puissance sdv").Cells(a + 6, 2)
    Cells(3, 4) = Worksheets("Puissance sdv").Cells(a + 6, 5)
    Cells(4, 3) = Worksheets("Puissance sdv").Cells(a + 5, 2)
    Cells(4, 4) = Worksheets("Puissance sdv").Cells(a + 5, 5)
    Cells(7, 3) = Worksheets("Puissance sdv").Cells(a + 15, 5)
    Cells(7, 9) = Worksheets("Puissance sdv").Cells(a + 17, 5)
    Next a
    End Sub
    là ça marche, j'ai testé, mais ça ne t'installe pas la liaison, ça ne fait que copier les valeurs. si tu ne dois extraire tes données qu'une seule fois, ça va le faire.

Discussions similaires

  1. Problème excel VBA: mots à défiler dans un userform
    Par Paulopiv dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2012, 18h50
  2. Problème excel vba mysql
    Par Lyrasuna dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/02/2010, 16h33
  3. Problème concaténation excel/vba
    Par rotterdamt dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 28/11/2005, 18h47
  4. Problème avec open() [Excel VBA]
    Par heddicmi dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 17h21
  5. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 18h27

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