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.
 

DoubleZero

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

Bonjour, cortadillo, Yaloo, le Forum,

Nul besoin de "clôturer la discussion".

Nous ne pouvons que vous remercier :) de votre aimable retour pour nous faire connaître que le problème initialement exposé est, à présent, résolu.

Bonne continuation et à bientôt :)
 

cortadillo

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

Bonjour DoubleZero,

j'avancement doucement mais surement dans la programmation de mes feuilles Excel, néanmoins je rencontre une difficulté dans mon code VBA.

J'ai crée une macro permettant la création de feuilles Excel avec pour intitulé la date du jour.

Exemple de feuilles crées:

- RAF MOE 04-03-12
- RAF MOA 04-03-12.


Le problème, si j’exécute une seconde fois la macro j'ai un débug puisque la feuille existe déjà j'ai besoin d'un contrôle sur le nom de la feuille est un message d'erreur de type : "vous avez déjà crée la feuille, réessayer demain".

Merci de votre aide.

PS j'ai tenté de joindre mon tableau Excel mais celui-ci pèse 442ko donc supérieur à 293ko. Si je peux vous transmettre mon tableur Excel par mail cela me ferai plaisir.

En attendant je vous communique ci-dessous le code source:

Sub MacroFeuille()
Dim i As Integer

'
' MacroFeuille Macro

'
' Touche de raccourci du clavier: Ctrl+r
'


'Figer l'écran
Application.ScreenUpdating = False
'Afficher la feuille masquée
Sheets("Données Maitre MOE").Visible = True
Sheets("Bilan Maitre MOE").Visible = True

Sheets(1).Select
Cells.Select ' Sélection totale de la feuille
Selection.Copy ' Copie
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

ThisWorkbook.Save

'Ajout de la feuille Bilan MOE

Sheets("Bilan Maitre MOE").Select
ActiveSheet.Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable ' MAJ du tableau croisé dynamique
Cells.Select ' Sélection totale de la feuille
Selection.Copy ' Copie
Range("A1").Select ' Positionnement du curseur en A1
Sheets.Add Worksheets(2) ' Ajout d'une nouvelle feuille
ActiveSheet.Paste ' Colle le contenu de la feuille précédemment copiée
ActiveSheet.Name = "Bilan MOE du " & Format(Date, "dd-mm-yyyy") ' Attribution du nom à la nouvelle feuille
Columns("E:E").ColumnWidth = 7
Columns("G:Q").EntireColumn.AutoFit




' Ajout des feuilles Excel Grpt

' For i = 1 To Worksheets.Count
' If Worksheets(i).Name = "RAF Grpt du " & Format(Date, "dd-mm-yyyy") Then
' MsgBox "Vous avez déjà génerer le RAF Groupement"

' Else
'End If
'Next i



'Ajout de la feuille Données maitres MOE

' trie des données
Sheets("Données Maitre MOE").Select
Range("A1").Select
Selection.Sort Key1:=Range("R2"), Order1:=xlAscending, Key2:=Range("AV2") _
, Order2:=xlDescending, Key3:=Range("AS2"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select

Cells.Select ' Sélection totale de la feuille
Selection.Copy ' Copie
Range("A1").Select ' Positionnement du curseur en A1

Sheets.Add Worksheets(3) ' Ajout d'une nouvelle feuille
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

ActiveSheet.Select
ActiveSheet.Name = "RAF Grpt du " & Format(Date, "dd-mm-yyyy") ' Attribution du nom à la nouvelle feuille
With Selection.Font
.Name = "calibri"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter



' Filtre de sélection groupement
Selection.AutoFilter Field:=46, Criteria1:="<>Rejeté", Operator:=xlAnd
Selection.AutoFilter Field:=45, Criteria1:="Groupement"

Columns("A:BD").EntireColumn.AutoFit
Range("A:A,I:O,Q:Q,S:AK,AN:AO,AM:AM,AQ:AQ,AS:AS,AU :AX,BA:BD").Select
Selection.EntireColumn.Hidden = True

'Largeur des champs
Columns("G:G").ColumnWidth = 11.86
Columns("R:R").ColumnWidth = 9.57
Columns("AL:AL").ColumnWidth = 12.29
Columns("AN:AO").ColumnWidth = 0
Columns("AM:AM").ColumnWidth = 10.71
Columns("G:G").ColumnWidth = 10.57
Columns("F:F").ColumnWidth = 7.57
Columns("B:B").ColumnWidth = 4.71
Columns("AU:AX").ColumnWidth = 0
Columns("AT:AT").ColumnWidth = 9.86
Columns("AY:AY").ColumnWidth = 21.29
Columns("AY:AY").ColumnWidth = 18.29
Columns("H:H").ColumnWidth = 37


Sheets("Données Maitre MOE").Select
ActiveSheet.Select
Cells.Select ' Sélection totale de la feuille
Selection.Copy ' Copie
Range("A1").Select ' Positionnement du curseur en A1
Sheets.Add Worksheets(4) ' Ajout d'une nouvelle feuille
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


' Ajout de la feuille RAF MOA


ActiveSheet.Name = "RAF MOA du " & Format(Date, "dd-mm-yyyy") ' Attribution du nom à la nouvelle feuille
With Selection.Font
.Name = "calibri"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter

' Filtre de sélection MOA

Selection.AutoFilter Field:=46, Criteria1:="<>Rejeté", Operator:=xlAnd, _
Criteria2:="=Attente MOA"
Selection.AutoFilter Field:=45, Criteria1:="moa1"


Columns("A:BD").EntireColumn.AutoFit
Range("A:A,I:O,Q:Q,S:AK,AN:AO,AM:AM,AQ:AQ,AS:AS,AU :AX,BA:BD").Select
Selection.EntireColumn.Hidden = True


'Largeur des champs
Columns("G:G").ColumnWidth = 11.86
Columns("R:R").ColumnWidth = 9.57
Columns("AL:AL").ColumnWidth = 12.29
Columns("AN:AO").ColumnWidth = 0
Columns("AM:AM").ColumnWidth = 10.71
Columns("G:G").ColumnWidth = 10.57
Columns("F:F").ColumnWidth = 7.57
Columns("B:B").ColumnWidth = 4.71
Columns("AU:AX").ColumnWidth = 0
Columns("AT:AT").ColumnWidth = 9.86
Columns("AY:AY").ColumnWidth = 21.29
Columns("AY:AY").ColumnWidth = 18.29
Columns("H:H").ColumnWidth = 37

Sheets("Données Maitre MOE").Select
ActiveSheet.Select
Cells.Select ' Sélection totale de la feuille
Selection.Copy ' Copie
Range("A1").Select ' Positionnement du curseur en A1
Sheets.Add Worksheets(4) ' Ajout d'une nouvelle feuille
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


' Ajout des feuilles Excel MOE


ActiveSheet.Name = "RAF MOE du " & Format(Date, "dd-mm-yyyy") ' Attribution du nom à la nouvelle feuille
With Selection.Font
.Name = "calibri"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter

' Filtre de sélection groupement
Selection.AutoFilter Field:=46, Criteria1:="<>Rejeté", Operator:=xlAnd
Selection.AutoFilter Field:=45, Criteria1:="moesirh1"

Columns("A:BD").EntireColumn.AutoFit
Range("A:A,I:O,Q:Q,S:AK,AN:AO,AM:AM,AQ:AQ,AS:AS,AU :AX,BA:BD").Select
Selection.EntireColumn.Hidden = True

'Largeur des champs
Columns("G:G").ColumnWidth = 11.86
Columns("R:R").ColumnWidth = 9.57
Columns("AL:AL").ColumnWidth = 12.29
Columns("AN:AO").ColumnWidth = 0
Columns("AM:AM").ColumnWidth = 10.71
Columns("G:G").ColumnWidth = 10.57
Columns("F:F").ColumnWidth = 7.57
Columns("B:B").ColumnWidth = 4.71
Columns("AU:AX").ColumnWidth = 0
Columns("AT:AT").ColumnWidth = 9.86
Columns("AY:AY").ColumnWidth = 21.29
Columns("AY:AY").ColumnWidth = 18.29
Columns("H:H").ColumnWidth = 37



'Masquer la feuille
Sheets("Bilan Maitre MOE").Visible = False
Sheets("Données Maitre MOE").Visible = False
Sheets("Fusion fiches Mantis").Visible = False
Sheets("Table des paramètres").Visible = False

'Réactiver l'affichage écran
Application.ScreenUpdating = True

ThisWorkbook.Save

Sheets("Commandes").Select


End Sub
 

Yaloo

XLDnaute Barbatruc

cortadillo

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

Bonjour Double Zero,

Grâce à ton aide, j'ai à présent un tableur Excel qui me permet de suivre les fiches Mantis. Chaque jour correspond une nouvelle feuille Excel décrivant la situation des fiches Mantis et de leur état.

A présent je souhaite regrouper ces informations à travers un seul tableau pour me permettre de créer un graphique en courbe.

Pour ce faire j'ai crée une feuille intitulé "Feuille Graph", il s'agira ici de suivre à travers un tableau l'évolution des fiches Mantis relevant du traitement "A chiffrer".

J'aimerai que ce tableau soit alimenté automatiquement, mais je ne sais comment faire.

Je joints à ma demande un tableau Excel.:confused:

merci de ton aide.
Cordialement


Regarde la pièce jointe Suivi RAF2.xls
 

Pièces jointes

  • Suivi RAF2.xls
    254.5 KB · Affichages: 71
  • Suivi RAF2.xls
    254.5 KB · Affichages: 73

DoubleZero

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

Bonjour, cortadillo, Yaloo, le Forum,

... Grâce à ton aide...

Je ne dirais pas cela, cortadillo : Yaloo a, également, répondu "présent" :) pour un travail d'équipe :D.

... je souhaite regrouper ces informations à travers un seul tableau pour me permettre de créer un graphique en courbe...

Je crains de ne savoir proposer une solution fiable :eek: et suggère d'ouvrir une nouvelle discussion. Il est certain que l'aide attendue ne tardera pas à poindre le bout de son nez.

Bon courage et à bientôt :)
 

Yaloo

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

Bonsoir à tous,

Peut être avec ceci, totaux effectués par feuille avec sommeprod, puis dans "feuille graph" récup de la cellule de chaque feuille.

Voir si ça va.

Sinon il y a surement possibilité par macro, mais beaucoup plus long.

Yaloo
 

Pièces jointes

  • Suivi RAF2.xls
    239.5 KB · Affichages: 46
  • Suivi RAF2.xls
    239.5 KB · Affichages: 53
  • Suivi RAF2.xls
    239.5 KB · Affichages: 44

cortadillo

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

Bonsoir tout le monde,

merci Yaloo de ta réponse. La solution proposée Yaloo répond quasiment à mon besoin, c'est une bonne idée d'avoir fait les totaux dans chaque feuille "bilan" et je souhaite conserver ce fonctionnement.

Le hic, c'est que en général je crée chaque jour, par macro, une feuille "Bilan". Ex: "Bilan 05-03-12", "Bilan 06-03-12", "Bilan 07-03-12".

Je pourrais modifier ma macro pour ajouter les totaux de Yaloo, par contre comment reporter automatiquement dans la feuille "Graph" les données des feuilles nouvellement crées (en l’occurrence totaux "A chiffrer", totaux "Attente MOA") par l'ajout d'une nouvelle ligne correspondant à la date de la feuille Bilan.

Ex: j'ai crée la feuille "Bilan 06-03-12". Je veux les reports de données (totaux "A chiffrer", totaux "Attente MOA") dans mon nouveau tableau (ajout d'une ligne):


Feuille.jpg


Merci encore de votre aide.:rolleyes:
 

Pièces jointes

  • Feuille.jpg
    Feuille.jpg
    55.6 KB · Affichages: 54
  • Feuille.jpg
    Feuille.jpg
    55.6 KB · Affichages: 55

Fo_rum

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

Bonjour,

Macro Or Not Macro (avec le fichier joint au message #24) ?
Tes nouvelles feuilles doivent avoir la même structure que les autres, la mise à jour des tableaux résumés se fait grâce aux macros suivantes. Tu pourras ensuite recopier les réponses dans chacun des onglets concernés.
Code:
Sub Anomalie()
  Call copie(Range("A2:F" & Cells(Rows.Count, 1).End(xlUp).Row + 1), "A chiffrer", 3, 5)
End Sub
Sub Evolution()
  Call copie(Range("H2:M" & Cells(Rows.Count, 8).End(xlUp).Row + 1), "Attente MOA", 10, 12)
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
          For Co = Deb To Fin 'colonnes visées
            Cells(Lig, Co) = Cells(Lig, Co) + sh.Cells(Li, Co - 7 * IIf(Co < 6, 0, 1))
            Range(Cells(Lig, Deb - 2), Cells(Lig, Deb + 3)).Borders.Value = 1
          Next
        End If
      Next
      Cells(Lig, Deb + 3) = Cells(Lig, Deb) + Cells(Lig, Deb + 1) + Cells(Lig, Deb + 2)
      Lig = Lig + 1
    End If
  Next
End Sub
 

Pièces jointes

  • Copier_Coller.xls
    100 KB · Affichages: 42
  • Copier_Coller.xls
    100 KB · Affichages: 49
  • Copier_Coller.xls
    100 KB · Affichages: 47

cortadillo

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

Bonjour Fo_rum,

Merci de ce code, toutes mes feuilles ont la même structure. Après avoir utilisé et modifié (légèrement le code) la mise à jour des tableaux se fait effectivement mais les valeurs retournées ne sont pas bon.

J'ai besoin d'un coup de main pour retrouver les bonnes valeurs, ci-dessous un exemple du fichier en question.Regarde la pièce jointe Suivi RAF.xls


Merci encore:eek:
 

Pièces jointes

  • Suivi RAF.xls
    84.5 KB · Affichages: 66
  • Suivi RAF.xls
    84.5 KB · Affichages: 64
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 883
Membres
103 981
dernier inscrit
vinsalcatraz