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 :

Generaliser un même traitement sur plusieurs feuilles(copier-coller) [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    Par défaut Generaliser un même traitement sur plusieurs feuilles(copier-coller)
    Bonjour le forum



    J’ai le code ci-dessous qui me permet de faire un traitement feuille par feuille.

    Je sélectionne la feuille active et j’exécute la macro et la plage définie est copiée et collée sur la feuille « CENTRALISATION ».

    J’ai essayé de réaménager le code pour qu’à l’exécution le traitement de fasse sur toutes les feuilles sauf celles exclues.

    Maintenant je souhaite qu’à chaque collage, le code agence (valeur de cellule ) s’affiche sur la colonne A.

    NB : je vais illustrer la plage de la colonne A par un exemple pour faciliter la compréhension.

    Si le collage se fait sur la plage B2 :B10 par exemple, la plage de la colonne A à affecter par la valeur de E9 est la plage A2 :A10.

    Telle est ma demande et souhaite vos interventions à l’accoutumé.

    Ci-dessous mon code :



    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
    Dim sh As Worksheet
     
    Dim O As Worksheet
     
    Set O = Sheets("CENTRALISATION")
     
    Dim DEST As Range
     
    Set DEST = IIf(O.Range("B2").Value = "", O.Range("B2"), O.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0))
     
        For Each sh In Worksheets
     
        If sh.Name <> "ANC_RC" And sh.Name <> "NVEL_RC" And sh.Name <> "CENTRALISATION" Then
     
            sh.Select
     
             Range("A12:I731").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
     
            Sheets("NVEL_RC").Range("A1:I94"), Unique:=False
     
            Range("A13:I350").Copy DEST
     
        End If
     
        Next sh

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour,

    merci encore une fois de commencer par respecter les règles de ce forum, à savoir baliser le code ‼

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    mets cette ligne au début de ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DEST = IIf(O.Range("B2").Value = "", O.Range("B2"), O.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0))

  4. #4
    Membre éclairé
    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
    Par défaut
    Bonsoir a tous
    Marc-L: avec un smartphone on a pas toutes les options pour travailler sur ce forum voilà pourquoi mes codes ne sont pas balisé..
    Parmi: votre solution ne resoud pas mon problème..

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Comme si le Copier/Coller eut été réalisé avec un smartphone !

    Ne pas être étonné à force de ne plus obtenir de réponse …  

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       ' Voilà je viens de faire le  balisage avec mon phone
    Et encore mieux :
    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
    Dim sh As Worksheet
     
    Dim O As Worksheet
     
    Set O = Sheets("CENTRALISATION")
     
    Dim DEST As Range
     
    Set DEST = IIf(O.Range("B2").Value = "", O.Range("B2"), O.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0))
     
    For Each sh In Worksheets
     
    If sh.Name <> "ANC_RC" And sh.Name <> "NVEL_RC" And sh.Name <> "CENTRALISATION" Then
     
    sh.Select
     
    Range("A12:I731").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
     
    Sheets("NVEL_RC").Range("A1:I94"), Unique:=False
     
    Range("A13:I350").Copy DEST
     
    End If
     
    Next sh
    Toujours de mon phone avec le copier/coller … comme quoi c'est possible !!!!

    C'est sur cela prends un peu plus de temps, mais l'effort est fait !!! Et les règles sont respectées !!!
    C'est qd même plus lisible …

    Salut Marc
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Citation Envoyé par capi81 Voir le message
    Bonsoir a tous
    Parmi: votre solution ne resoud pas mon problème..
    Et quel est le problème plus exactement ?

  8. #8
    Membre éclairé
    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
    Par défaut
    Bonsoir Parmi et le forum

    mets cette ligne au début de ta boucle
    Peut être que vous n'avez pas bien cerné mon besoin.
    Avec le code ci-dessous modifié, vous allez certainement mieux me comprendre.
    J'ai essayé de le bricoler suivant ma logique mais il fonctionne pas comme je souhaite:
    - il ne colle pas bien les données:mois je souhaite que les éléments filtrés seulement soit copiés et collés sur la feuille de destination,
    - aussi la colonne A n'est pas renseignée par la valeur de la cellule E9 : en effet lorsque des éléments d'une feuille sont copiés sur la feuille de destination, après collage sur la colonne B, les cellules vide de la colonne A doivent prendre la valeur de E9 (de la feuille copiée).
    Merci de m'aider à parfaire mon code pour atteindre le résultat souhaité.

    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
    Dim sh As Worksheet
    Dim O As Worksheet
    Dim Max_ligne As Long
    Dim i As Long
    Set O = Sheets("CENTRALISATION")
    Dim DEST As Range
     
        For Each sh In Worksheets
        Set DEST = IIf(O.Range("B2").Value = "", O.Range("B2"), O.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0))
        If sh.Name <> "NVEL_RC" And sh.Name <> "CENTRALISATION" And sh.Name <> "ANC_RC" Then
            'sh.Select
             sh.Range("A12:I731").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Sheets("NVEL_RC").Range("A1:I94"), Unique:=False
            Range("A13:I350").Copy DEST
        End If
        'Inscription de la valeur de la cellule E9 en colonne A si b non vide, ou b rempli de blancs
        For i = 2 To Max_ligne
            If Replace(Cible.Cells(i, 2).Value, " ", "") <> "" Then
            O.Cells(i, 1).Value = sh.Range("E9").Value
        End If
        Next i
        Next sh

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

Discussions similaires

  1. [XL-2007] Recherche même référence sur plusieurs feuilles
    Par relmo dans le forum Excel
    Réponses: 5
    Dernier message: 01/06/2015, 16h38
  2. [XL-2010] Comment étendre un traitement sur plusieurs feuilles d'un classeur
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2015, 19h27
  3. [XL-2010] Somme des cellules de la même date sur plusieurs feuilles
    Par titi83 dans le forum Excel
    Réponses: 11
    Dernier message: 22/03/2014, 12h37
  4. Appliquer un même code sur plusieurs feuilles Excel
    Par mouncefdi dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/04/2009, 10h24
  5. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23

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