Copier - coller les données d'une feuille vers l'autre par macro

cortadillo

XLDnaute Nouveau
Bonjour,

je me permets de solliciter de l'aide. J'ai une classeur excel avec plusieurs feuilles

Feuille1 avec des données (liste de personnes de catA) alimentées chaque jour.
Feuille2 avec des données (liste de personnes de catB) alimentées chaque jour.

J'aimerai crée une macro qui :
1. copie les données de la feuille1 (colonne A, B et C) pour les coller dans une nouvelle feuille (feuille3).
2. copie les données de la feuille2 (colonne A, B et C) pour les coller à la suite des données précédemment collées (c'est à dire dès que la prochaine ligne de la feuille3 est vide).

En sachant que les données de la feuille1 et feuille2 évolue (le nombre d'occurence augmente de jour en jour).

Merci de votre aide.
 

Yaloo

XLDnaute Barbatruc
Re : Copier - coller les données d'une feuille vers l'autre par macro

Bonjour cortadillo, Fo_rum,

Je me permet de répondre à la place de Fo_rum.

Cela me parait normal puisque tu n'as pas de colonne "Hors garantie" dans "bilan MOE", tu n'as mis que 3 colonnes : Anomalie, Evolution et Total.

Ta première demande avait 4 colonnes : Anomalie, Evolution, Hors garantie et Total, donc la macro de Fo_rum copie la colonne total de Bilan MOE en 3ème colonne de ton TabGraph, soit Hors garantie.

De plus, dans ta macro TabGraph en 5 ème ligne il faut mettre :

Call copie(Range("U2:AA" & Cells(Rows.Count, 22).End....

A+
 

cortadillo

XLDnaute Nouveau
Re : Copier - coller les données d'une feuille vers l'autre par macro

Oui mais le problème c'est que mon tableau croisé dynamique "évolue" en fonction des données; il arrive parfois que la colonne "hors garantie" disparaisse quand il n' y a pas de données à afficher.

Je corrige mon tableau pour revenir vers vous

A+
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Copier - coller les données d'une feuille vers l'autre par macro

Bonjour,

merci Yaloo :) d'avoir pris le relais (mauvaise manipulation et mon dernier message n'a pas envoyé).
C'est le genre de réponse qui donne envie de continuer à présenter des idées et tu me confortes dans ma façon de penser : les propositions ne sont pas faites pour un individu mais pour une collectivité.

J'ai fait le même constat (voilà pourquoi je parlais de même structure).

Les macros sont construites pour déterminer des dernières lignes et des colonnes
si on rajoute des ligne ...
si on rajoute des colonnes ...
il faut les adapter.

J'ai éliminé une boucle qui était plus difficile à construire avec 4 tableaux et cela devrait pouvoir tourner.
A toi de voir cortadillo mais si tu continues à changer, je ne serais sans doute plus disposé pour reprendre tout.
 

Pièces jointes

  • CopierColler.xls
    76.5 KB · Affichages: 61
  • CopierColler.xls
    76.5 KB · Affichages: 64
  • CopierColler.xls
    76.5 KB · Affichages: 69

Yaloo

XLDnaute Barbatruc
Re : Copier - coller les données d'une feuille vers l'autre par macro

Salut Fo_rum, cortadillo, le forum,

D'après ce que je comprend cortadillo a besoin d'une macro qui doit mettre ou pas la colonne "hors garantie" puisqu'il écrit ceci :

Oui mais le problème c'est que mon tableau croisé dynamique "évolue" en fonction des données; il arrive parfois que la colonne "hors garantie" disparaisse quand il n' y a pas de données à afficher.

Je pense qu'il faut tester si la colonne "hors garantie" existe, et ensuite en tenir compte.

A+
 

cortadillo

XLDnaute Nouveau
Re : Copier - coller les données d'une feuille vers l'autre par macro

J'ai une idée, au lieu de parcourir le tableau croisée dynamique pourquoi ne pas récupérer les totaux mis en évidence au dessus du tableau croisée dynamique.

Si la colonne "Hors garantie" apparait alors les valeurs du tableau en surligné en jaune feront leurs apparition en colonne F:p

Je pense que c'est plus simple que de faire un test et de parcourir le tableau croisé dynamique.

Qu'en pensez vous?

Regarde la pièce jointe Suivi RAF.xls
 

Pièces jointes

  • Suivi RAF.xls
    115.5 KB · Affichages: 67
  • Suivi RAF.xls
    115.5 KB · Affichages: 63

Yaloo

XLDnaute Barbatruc
Re : Copier - coller les données d'une feuille vers l'autre par macro

Re,

Voir avec ceci, si ça fonctionne.

VB:
Option Explicit
Sub TabGraph()
  Sheets("TabGraph").Select
  Call copie(Range("A2:F" & Cells(Rows.Count, 1).End(xlUp).Row + 1), "A chiffrer", 3, 5)
  Call copie(Range("H2:M" & Cells(Rows.Count, 8).End(xlUp).Row + 1), "Validé", 10, 12)
  Call copie(Range("O2:T" & Cells(Rows.Count, 15).End(xlUp).Row + 1), "Attente MOA", 17, 19)
  Call copie(Range("U2:AA" & Cells(Rows.Count, 22).End(xlUp).Row + 1), "Attente MOE", 24, 26)
End Sub
Sub copie(P As Range, Tx As String, Deb As Byte, Fin As Byte)
  Dim Lig As Long, sh As Worksheet
  Lig = 2
  P.ClearContents 'plage à effacer
  Application.ScreenUpdating = False
  For Each sh In Worksheets
    If Left(sh.Name, 2) = "Bi" Then
      Dim Dl As Long, Li As Long, Co As Byte
      Cells(Lig, Deb - 1) = CDate(Replace(Right(sh.Name, 10), "-", "/"))
      Cells(Lig, Deb - 2) = Tx 'Texte à écrire, tester
      Dl = sh.Cells(Rows.Count, 2).End(xlUp).Row
      For Li = 3 To Dl
        If sh.Cells(Li, 2) = Tx Then
          If sh.Cells(7, 5) = "Hors garantie" Then
            Cells(Lig, Deb) = Cells(Lig, Deb) + sh.Cells(Li, 3)
            Cells(Lig, Deb + 1) = Cells(Lig, Deb + 1) + sh.Cells(Li, 4)
            Cells(Lig, Deb + 2) = Cells(Lig, Deb + 2) + sh.Cells(Li, 5)
            Cells(Lig, Deb + 3) = Cells(Lig, Deb + 3) + sh.Cells(Li, 6)
          Else
            Cells(Lig, Deb) = Cells(Lig, Deb) + sh.Cells(Li, 3)
            Cells(Lig, Deb + 1) = Cells(Lig, Deb + 1) + sh.Cells(Li, 4)
            Cells(Lig, Deb + 3) = Cells(Lig, Deb + 3) + sh.Cells(Li, 5)
          End If
            Range(Cells(Lig, Deb - 2), Cells(Lig, Deb + 3)).Borders.Value = 1
        End If
      Next
      Lig = Lig + 1
    End If
  Next
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas