Copier / coller suite a un appuis bouton...

quinze24

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin de votre aide :

Je souhaite copier un onglet d'un fichier A, créer un nouveau classeur B et coller cette copie sur ce dernier (classeur B). Et tout ça en automatique. Le déclencheur de la commande est un bouton.

Merci

Sur Excel 2007
 

Papou-net

XLDnaute Barbatruc
Re : Copier / coller suite a un appuis bouton...

Bonsoir quinze24, et bienvenue,

En principe, une seule ligne suffit à faire la copie, mais il faut être certain que le classeur de destination est bien ouvert :

Code:
Sub CommandButton1_Click()
Sheets("Nom de feuille").Copy Before:=Workbooks("Classeur.xlsm").Sheets(x)
End Sub
Il faut bien sûr remplacer le textes entre guillemets par le nom de la feuille à copier et le nom du classeur cible. Dans cet exemple, la feuille sera copiée en première position dans la barre des onglets. Pour l'insérer devant un feuille quelconque, il suffit de remplacer "x" par le n° de position de la feuille.
Pour copier en dernière position :

Sub CommandButton1_Click()
Sheets("Nom de feuille").Copy After:=Workbooks("Classeur.xlsm").Sheets(Sheets.Count)
End Sub
Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Copier / coller suite a un appuis bouton...

Super merci!

Et y a t'il un code pour la création et l'ouverture d'un nouveau classeur?

Merci

RE :

Tout simplement comme ceci :

Code:
Sub CommandButton1_Click()
Sheets("Nom de feuille").Copy
End Sub
Cette macro créera automatiquement un nouveau classeur. Ce classeur s'appellera "Classeur1" et ne comportera que la feuille copiée.

Cordialement.
 

quinze24

XLDnaute Nouveau
Re : Copier / coller suite a un appuis bouton...

RE :

Tout simplement comme ceci :

Code:
Sub CommandButton1_Click()
Sheets("Nom de feuille").Copy
End Sub
Cette macro créera automatiquement un nouveau classeur. Ce classeur s'appellera "Classeur1" et ne comportera que la feuille copiée.

Cordialement.

Et bien super !
Merci papou-net !
Je test et je ferme si c'est bon.
 

quinze24

XLDnaute Nouveau
Re : Copier / coller suite a un appuis bouton...

Pardon c'est bon j'avais un petit bout de code pas effacé....
Merci.
Il est possible d'abuser est de demander si après :
Sheets("Nom de feuille").Copy
Je peux rajouter la commande enregistrer sous.( que je ne connais pas )
Car comme ça la personne n'a plus qu'a mettre le nom est valider.

Encore merci
 

Papou-net

XLDnaute Barbatruc
Re : Copier / coller suite a un appuis bouton...

RE :

Voici un exemple utilisant la fenêtre "Enregistrer sous" d'Excel :

Code:
Private Sub CommandButton1_Click()
Dim SaveBox As FileDialog
Set SaveBox = Application.FileDialog(msoFileDialogSaveAs)

Sheets("Feuil1").Copy
With SaveBox
  .Show
  .Execute
End With
End Sub
Si tu sélectionnes le mot-clé "FileDialog" et que tu appuies sur F1 tu auras des précisions concernant le paramétrage de la boîte de dialogue. Dans l'exemple ci-dessus, le plus simple qui soit, il te faudra indiquer (ou sélectionner) le répertoire et indiquer le nom du fichier ainsi que son extension.

Cordialement.
 

quinze24

XLDnaute Nouveau
Re : Copier / coller suite a un appuis bouton...

BON JE L'AI RÉCUPERER...
Y a du boulot car toutes mes cellules sont en vrac mais j'ai les données.
Ca m'apprendra à pas faire de sauvegarde récente...

J'ai pu tester le code et ça marche au poil !!!!
J'ai la possibilité de rajouter la valeur d'une liste déroulante + la date dans le nom du fichier en auto?

Merci papou-net
 

Papou-net

XLDnaute Barbatruc
Re : Copier / coller suite a un appuis bouton...

J'ai la possibilité de rajouter la valeur d'une liste déroulante + la date dans le nom du fichier en auto?

Oui, bien sûr !

Le tout est de savoir quel type de liste déroulante tu utilises, et si elle placée sur une feuille ou un formulaire ?

Je reprends le sujet demain, après ta réponse, car pour l'heure je pars au dodo.

Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Copier / coller suite a un appuis bouton...

Bonjour quinze24,

Voici le code que tu attendais :

Code:
Private Sub CommandButton1_Click()
Dim SaveBox As FileDialog
Set SaveBox = Application.FileDialog(msoFileDialogSaveAs)

'Sheets("Feuil1").Copy
With SaveBox
  .Title = "Enregistrer sous..."
  .AllowMultiSelect = False
  .InitialFileName = ComboBox1 & TextBox1 & Date & ComboBox2
  .Show
'  .Execute
End With
End Sub
Pour te permettre de le tester, je te joins un fichier exemple avec un UserForm s'ouvrant sur un clic du bouton Démo. Pour éviter des enregistrements inutiles durant les tests, j'ai mis la ligne de copie et celle d'exécution en commentaires.

Bonne journée.

Cordialement.

NB : tant qu'une des zones à renseigner est vide, le bouton Enregistrer est désactivé. Ca permet d'éviter un plantage du code s'il manque un élément dans le chemin du fichier.
 

Pièces jointes

  • Exemple quinze24.xlsm
    20.6 KB · Affichages: 34

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 492
Messages
2 088 938
Membres
103 988
dernier inscrit
Feonix