Forums XLPages

Tous les messages (ritchi3131)

AIDE EXCEL VBA COPIER COLLER FEUILLE COMPLÈTE AVEC GRAPH
#1
Débutant XLPages

Inscription: 28/07/2017
De toulouse

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 13-10-2017 16h23

Bonjour

Je travaille beaucoup avec les formules mais par contre je ne connais pas le VBA . On m'a fait un code que je suis arrivé à adapter sur un autre travail, mais la, je bloque. Le code permet de copier une feuille Excel donc avec les tableaux et les mises en formes , sans les formules (pour qu'ils ne se mettent pas à jour) vers une nouvelle dont on à choisit le nom dans une liste et cela fonctionne avec une fenêtre de choix .. Mais dans cette feuille, j'ai des graphiques présents et j'aimerai qu'ils soient copiées, ce qui n'est pas le cas actuellement.. La feuille source s'appelle "Reporting"

la partie qui permet de copier (si j'ai bien tout saisi) est la suivante :

' Copie de la feuille "Reporting" sans les formules pour éviter que les données se mettent à jours
Application.ScreenUpdating = False
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Reporting").Cells.Copy
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets(Sheets.Count).Name = UCase(ComboBox1) & "_" & Format(Now, "yyyy")
[A1].Select

/////////////////////////////////////////////////////////////////////////////////


Le code complet est ci dessous :





Private Sub annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

End Sub

Private Sub Label1_Click()

End Sub

Private Sub OK_Click()
If ComboBox1 = "" Then
MsgBox ("VEUILLEZ SELECTIONNER LA SEMAINE A CREER")
Exit Sub
End If
For I = 1 To Sheets.Count
If UCase(Left(Sheets(I).Name, Len(ComboBox1))) = UCase(ComboBox1) Then
MsgBox ("La feuille " & UCase(ComboBox1) & " existe déjà, si vous désirez regénérer une feuille de données veuillez la supprimer avant toute action")
Exit Sub
End If
Next I
' Copie de la feuille "Reporting" sans les formules pour éviter que les données se mettent à jours
Application.ScreenUpdating = False
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Reporting").Cells.Copy
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets(Sheets.Count).Name = UCase(ComboBox1) & "_" & Format(Now, "yyyy")
[A1].Select
Application.ScreenUpdating = True
Unload Me
End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem "Semaine42"
ComboBox1.AddItem "Semaine43"
ComboBox1.AddItem "Semaine44"
ComboBox1.AddItem "Semaine45"
ComboBox1.AddItem "Semaine46"
ComboBox1.AddItem "Semaine47"
ComboBox1.AddItem "Semaine48"
ComboBox1.AddItem "Semaine49"
ComboBox1.AddItem "Semaine50"
ComboBox1.AddItem "Semaine51"
ComboBox1.AddItem "Semaine52"
End Sub


///////////////////////////////////////////////////////


Merci les gens d'avance !

Hors Ligne
Rapport   Haut 

XL 2010 CREATION MACRO: création feuille plus copie d'une autre
#2
Débutant XLPages

Inscription: 28/07/2017
De toulouse

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 28-07-2017 15h41

Bonjour!
Je chercher une expert en macro pour voir si on peut m aider.

je désirerai une macro qui s'exécute dès que l'on ouvre le fichier (fichier joint "copie de reporting"). Qui demande si on désire le consulter ou faire une "update" . Et désactiver les liaisons , car le ficher va lire des données sur un fichier externe . 

donc question du genre:

Ouverture pour consultation ou pour update ? avec un bouton "consultation" et "update" à sélectionner.

Si on appuie sur le bouton "consultation" rien ne se passe. ou juste un message "fichier en consultation"et donc désactiver les liaisons . 

- Si on appuie sur le bouton "update" la ça se complique . il faut :

- Afficher un message que l'outil va créer une nouvelle feuille dans le fichier. "Attention un Update des données va être lancé voulez vous continuer " avec un bouton "OUI" "NON" si "NON l 'outil se ferme avec le message "update annulé" et rien ne se passe. SI on appuie sur "OUI" activer les liaisons pour mettre à jour le fichier avec les nouvelles valeurs , et ensuite après la mise avoir des cellules , on doit poser la question suivante : " quel(s) moi(s) d'analyse(s). L 'utilisateur rentre le ou les mois désirés. A partir de ce moment la macro devra créer un nouvelle feuille avec le ou les mois rentrés précédemment en rajoutant l'année en cours ! exemple si l utilisateur rentre MARS une nouvelle feuille "MARS 2017" devra être crée dans le fichier (si bien sur on est en 2017 ^^). Le nom de la feuille devra être en MAJUSCULE.

Après cela il faut que la macro "copie " une feuille déjà présente dans le fichier appelée "Reporting" dans la nouvelle feuille précédemment créée.

à la fin de la macro , afficher un message "Update terminé"

Il faut que la macro s'assure que le fichier "Données.xlsx" soit ouvert car c'est le fichier qui contient les sources pour les updates. si ce n'est pas le cas est il possible de forcer l 'ouverture ? sachant qu'il est situé au même niveau que le fichier ? si non attendre que l utilisateur l 'ouvre et continuer la macro.

Voilu ! je ne sais pas faire de macro à mon grand désespoir :(

Merci d'avance pour l 'aide apportée si possible.

Hors Ligne
Rapport   Haut