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 :

Comment étendre un traitement sur plusieurs feuilles d'un classeur [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut Comment étendre un traitement sur plusieurs feuilles d'un classeur
    Salut le forum

    Malgré vos multiples soutiens, j'ai toujours pas encore bien assimilé la logique sur :
    comment étendre un traitement d'une feuille source vers les autres feuilles du même classeur.
    Voici le cas actuel que je n'arrive pas à solutionner:
    je souhaite insérer des lignes dans mon tableau.
    L’insertion devra être faite sur la ligne 20, 22 avec respectivement comme contenu en A20 (Fonctionnaire non Titulaire), A22 (DAT) et A33 (Affacturage).
    Je souhaite aussi remplacer le contenu de la cellule A30 en Crédit CT & MT.
    Voici ce que j'ai essayé de bricoler mais ca ne produit pas mes attentes.
    Merci de m'aider avec explication à l'appui sans vouloir trop abuser de votre temps.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
        Sub Insert()
        '
     
     
            For Each Feuille In Worksheets
                If Feuille.Name <> "2015" And Feuille.Name <> "Janv 2015" And Feuille.Name <> "TBC Js1" Then
                    'For I = 0 To UBound(arrCellules)
                        'Sheets("OUAGA SIEGE").Range(arrCellules(I)).Copy Feuille.Range(arrCellules(I))
                   ' Next
     
            Rows("20:20").Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Range("A20").Select
            ActiveCell.FormulaR1C1 = "Fonctionnaire non Titulaire"
            Range("A21").Select
            ActiveWindow.SmallScroll Down:=3
            Rows("23:23").Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Range("A23").Select
            ActiveCell.FormulaR1C1 = "DAT"
            Range("A24").Select
            ActiveWindow.SmallScroll Down:=12
            Range("A32").Select
            ActiveCell.FormulaR1C1 = "Crédit CT & CMT"
            Rows("33:33").Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ActiveCell.FormulaR1C1 = "Affacturage"
            Rows("33:33").Select
            Range("B33").Activate
            ActiveWindow.SmallScroll Down:=0
            Range("A34").Select
             End If
            Next
     
        End Sub

  2. #2
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Points : 285
    Points
    285
    Par défaut
    hello

    tu n'as pas définit tes variables :
    Feuille
    Worksheets

    La solution est peu être là ! ;-)

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Salut GADENSEB et le forum

    Merci pour ton feedback et d'avoir attiré mon attention.
    J'ai défini Feuille mais toujours pas de résultat.
    Merci de voir.
    Je continue de regarder à mon niveau aussi.

  4. #4
    Membre habitué
    Homme Profil pro
    Programmeur en temps libre
    Inscrit en
    Février 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur en temps libre
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 68
    Points : 139
    Points
    139
    Par défaut
    Bonjour à tous,

    tu fais un for each feuille, mais après tu n'utilises pas la feuille que tu pointe.

    il faut que tu ajoutes soit:
    -feuille.activate après ton if
    -tu utilises un bloc with, ceci est plus rapide, comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
       Sub Insert()
        '
     
     
            For Each feuille In Worksheets
                If feuille.Name <> "2015" And feuille.Name <> "Janv 2015" And feuille.Name <> "TBC Js1" Then
                    'For I = 0 To UBound(arrCellules)
                        'Sheets("OUAGA SIEGE").Range(arrCellules(I)).Copy Feuille.Range(arrCellules(I))
                   ' Next
     
            With feuille
                .Rows("20:20").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .Range("A20").FormulaR1C1 = "Fonctionnaire non Titulaire"
                .Range("A21").SmallScroll Down:=3
                .Rows("23:23").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .Range("A23").FormulaR1C1 = "DAT"
                .Range("A32").FormulaR1C1 = "Crédit CT & CMT"
                .Rows("33:33").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .ActiveCell.FormulaR1C1 = "Affacturage"
                .Range("A34").Select
            End With
             End If
            Next
     
        End Sub
    j'en ai profité pour faire le ménage, le code créé par le générateur de macros n'est pas optimum

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Salut Aposto

    Merci pour votre solution.
    J'ai rencontré un peu de soucis mais suis arrivé à l'adapter et ca marche.
    Ci-dessous le code légèrement modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub Insert()
        '
     
        Dim Feuille As Worksheet
     
     
            For Each Feuille In Worksheets
                If Feuille.Name <> "2015" And Feuille.Name <> "Janv 2015" And Feuille.Name <> "TBC Js1" Then
                    'For I = 0 To UBound(arrCellules)
                        'Sheets("OUAGA SIEGE").Range(arrCellules(I)).Copy Feuille.Range(arrCellules(I))
                   ' Next
     
            With Feuille
                .Rows("20:20").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .Range("A20").FormulaR1C1 = "Fonctionnaire non Titulaire"
                '.Range("A21").SmallScroll Down:=3
                .Rows("23:23").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .Range("A23").FormulaR1C1 = "DAT"
                .Range("A32").FormulaR1C1 = "Crédit CT & CMT"
                .Rows("33:33").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                .Range("A33").FormulaR1C1 = "Affacturage"
     
            End With
            Range("A34").Select
             End If
            Next
     
        End Sub

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

Discussions similaires

  1. [Toutes versions] comment copier plusieurs cellules d'une feuille sur plusieurs feuilles
    Par lem56 dans le forum Excel
    Réponses: 1
    Dernier message: 28/04/2013, 13h10
  2. [XL-2010] somme.si sur plusieurs feuilles dans un classeur
    Par biquet52 dans le forum Excel
    Réponses: 3
    Dernier message: 21/10/2011, 15h14
  3. étendre un calcul sur plusieurs feuille
    Par braquin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2009, 16h48
  4. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 16h56
  5. Réponses: 4
    Dernier message: 03/12/2004, 12h18

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