> Tous les forums > Forum Bureautique
 petit problème avec ma macro (débutant!!)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Oli359
  Posté le 24/02/2006 @ 10:10 
Aller en bas de la page 
Petit astucien
Bonjour à toutes et tous, Je ne connais pas très bien excel, mais je me suis quand même lancé dans l'aventure de la création de macro. Le but de ma macro est d'insérer un tableau qui contient plusieurs colonnes et plusieurs lignes. C'elle que j'ai créé pour l'instant fonctionne très bien mais le gros inconvénient est qu'elle copie tout simplement le tableau situé au-dessus. Mais ça ne me convient pas vraiment. Ce que je voudrais, c'est insérer un tableau vierge, et pas faire une copie de ce qu'il y a au-dessus (le but étant, si j'y arrive, d'insérer des tableaux différents les uns des autres). Ma question est de savoir s'il est possible, à l'aide d'une macro, d'insérer dans la feuille 1 un tableau provenant de la feuille 2 et si oui, comment? J'espère que j'ai été clair... [crazy] [clindoeil] D'avance merci pour votre aide!! [bierre]
Publicité
galopin01
 Posté le 24/02/2006 à 10:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
bonjour, C'est assez compliqué Au lieu de faire un Copier/Coller il faut faire plusieurs PasteSpecial successifs : [code]Selection.PasteSpecial Paste:=xlPasteFormats Selection.PasteSpecial Paste:=xlPasteFormulas Selection.PasteSpecial Paste:=xlPastexlPasteColumnWidths[/code] A+
Oli359
 Posté le 24/02/2006 à 10:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Salut galopin merci pour ta réponse! Je confirme, le copier-coller ne fonctionne pas (j'ai déjà essayé plusieurs fois, ça marche pas) Tu peux me dire comment faire ce "collage spécial" stp? (euh... je comprends pas très bien en fait...) merci!!

Modifié par Oli359 le 24/02/2006 10:48
galopin01
 Posté le 24/02/2006 à 11:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
re... xlPastexlPasteColumnWidths étant assez complexe à utiliser, Tu peux essayer ce genre de truc :[code]Sub Test() Sheets("Feuil1").Range("B5:D10").Copy With Sheets("Feuil2").Range("B5") .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteFormulas End With For i = 1 To 25 k = Sheets("Feuil1").Columns(i).ColumnWidth Sheets("Feuil2").Columns(i).ColumnWidth = k Next End Sub[/code] Il suffit de changer Range("B5:D10") pour ta plage perso et si tu as plus de 25 colonnes tu mets : For i = 1 To 50 'par exemple... Nota : Celà ne peut fonctionner s'il y a des cellules fusionnées dans ton tableau. Les cellules fusionnées sont (presque !) incompatibles avec VBA. A+
Oli359
 Posté le 24/02/2006 à 12:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
galopin01 a écrit :
re... xlPastexlPasteColumnWidths étant assez complexe à utiliser, Tu peux essayer ce genre de truc :[code]Sub Test() Sheets("Feuil1").Range("B5:D10").Copy With Sheets("Feuil2").Range("B5") .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteFormulas End With For i = 1 To 25 k = Sheets("Feuil1").Columns(i).ColumnWidth Sheets("Feuil2").Columns(i).ColumnWidth = k Next End Sub[/code] Il suffit de changer Range("B5:D10") pour ta plage perso et si tu as plus de 25 colonnes tu mets : For i = 1 To 50 'par exemple... Nota : Celà ne peut fonctionner s'il y a des cellules fusionnées dans ton tableau. Les cellules fusionnées sont (presque !) incompatibles avec VBA. A+
Merci pour ton aide, mais je n'avais jamais entendu parler de VBA jusqu'à ce matin... Je ne comprends donc absolument rien de ce que tu as écrit plus haut... Désolé... [rougir] Il n'existe pas une façon plus "simple" de faire les manipulations que tu me recommandes?
galopin01
 Posté le 24/02/2006 à 13:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Re : La copie d'un tableau entier n'est pas vraiment un exercice de débutant ! Toutefois la macro que je t'ai donné copie un tableau entier de la "Feuil1" vers la "Feuil2" Avec les précisions que je t'ai données. Il suffit de Copier tout le code, le coller dans un module STANDART (Module1...) et appuyer sur F5 Tu peux déjà vérifier que la macro fonctionne bien dans un classeur d'essai, t'entraîner à la modifier pour copier une plage plus grande. Puis quand tu auras compris le fonctionnement... Si nécessaire, remplacer la Feuille Origine ("Feuil1") par "TaFeuilleModèle" et remplacer la Feuille Cible ("Feuil") par "TaFeuilleDestination") Et tu gagneras déjà un temps précieux. Après, tout est une question de réglages, de tâtonnements, d'erreurs, de patience et d'apprentissage petit à petit... A+

Modifié par galopin01 le 24/02/2006 13:01
Oli359
 Posté le 24/02/2006 à 13:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
galopin01 a écrit :
Re : La copie d'un tableau entier n'est pas vraiment un exercice de débutant ! Toutefois la macro que je t'ai donné copie un tableau entier de la "Feuil1" vers la "Feuil2" Avec les précisions que je t'ai données. Il suffit de Copier tout le code, le coller dans un module STANDART (Module1...) et appuyer sur F5 Tu peux déjà vérifier que la macro fonctionne bien dans un classeur d'essai, t'entraîner à la modifier pour copier une plage plus grande. Puis quand tu auras compris le fonctionnement... Si nécessaire, remplacer la Feuille Origine ("Feuil1") par "TaFeuilleModèle" et remplacer la Feuille Cible ("Feuil") par "TaFeuilleDestination") Et tu gagneras déjà un temps précieux. Après, tout est une question de réglages, de tâtonnements, d'erreurs, de patience et d'apprentissage petit à petit... A+
Ok, parfait!! Un grand merci pour ton aide! Je vais de se pas suivre tes indications et voir comment ça se passe!! A plus tard! [chinois]
Oli359
 Posté le 24/02/2006 à 13:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Voilà, j'ai réussi à copier la commande et la macro fonctionne! (et je l'ai aussi modifiée pour qu'elle copie de la feuil2 vers la feuil1) Super, ça marche!! Maintenant, est-ce que tu pourrais me dire ce qu'il faut y changer pour que ce tableau s'insère dans une case que j'ai sélectionné à l'avance dans ma feuil1 et non pas au même endroit que celui de la feuil2? (c'est ça les incréments ou je me trompe?...) Merci d'avance!! [smile]
Oli359
 Posté le 24/02/2006 à 13:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Oli359 a écrit :
Voilà, j'ai réussi à copier la commande et la macro fonctionne! (et je l'ai aussi modifiée pour qu'elle copie de la feuil2 vers la feuil1) Super, ça marche!! Maintenant, est-ce que tu pourrais me dire ce qu'il faut y changer pour que ce tableau s'insère dans une case que j'ai sélectionné à l'avance dans ma feuil1 et non pas au même endroit que celui de la feuil2? (c'est ça les incréments ou je me trompe?...) De plus, comment faire pour que les dimensions (hauteur, largeur) des colonnes et des lignes n'entrent pas en compte? En d'autres mots, comment faire pour que le tableau de la feuil2 s'adapte aux dimensions du tableau de la feuil1? Merci d'avance!! [smile]
galopin01
 Posté le 24/02/2006 à 14:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Non ça n'a rien à voir avec l'incrémentation. On pourrait plutôt parler (éventuellement) d'Offset. Dans ma macro ma cible est : With Sheets("Feuil2").Range("B5") il suffit de remplacer par ta cible. Ok ?

Modifié par galopin01 le 24/02/2006 14:21
Oli359
 Posté le 24/02/2006 à 14:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
galopin01 a écrit :
Non ça n'a rien à voir avec l'incrémentation. On pourrait plutôt parler (éventuellement) d'Offset. Dans ma macro ma cible est : With Sheets("Feuil2").Range("B5") il suffit de remplacer par ta cible. Ok ?
Ok... donc si je comprends bien, la commande dit qu'elle doit copier dans la feuille 2 à partir de la cellule B5. Or, ce que je voudrais, c'est qu'au lieu que ce soit B5, ce soit la cellule courante de la feuille 2.

Modifié par Oli359 le 24/02/2006 14:34
galopin01
 Posté le 24/02/2006 à 16:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
C'est pas l'idéal, il vaut mieux éviter ce genre de formulation dans une macro. Si tu insistes... Celà suppose que ta feuille cible est la feuille active au moment du lancement de la macro. La macro sera alors :[code]Sub Test() Sheets("Feuil1").Range("B5:D10").Copy ActiveCell.PasteSpecial Paste:=xlPasteFormats ActiveCell.PasteSpecial Paste:=xlPasteFormulas For i = 1 To 25 k = Sheets("Feuil1").Columns(i).ColumnWidth Sheets("Feuil2").Columns(i).ColumnWidth = k Next End Sub[/code] A+

Modifié par galopin01 le 24/02/2006 16:59
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
16,92 €Clé USB 3.0 SanDisk Ultra Flair 128 Go à 16,92 €
Valable jusqu'au 23 Mai

Amazon fait une promotion sur la clé USB 3.0 SanDisk Ultra Flair 128 Go qui passe à 16,92 € alors qu'on la trouve ailleurs à plus de 25 €. Cette clé USB offre des débits jusqu'à 150 Mo/s.


> Voir l'offre
54,50 €Disque dur externe portable Toshiba Canvio Basics 2 To USB 3.0 à 54,50 €
Valable jusqu'au 22 Mai

Amazon propose actuellement le disque dur externe portable Toshiba Canvio Basics 2 To USB 3.0 à 54,50 € seulement ! Avec ses 2 To et sa connectique USB 3.0 compatible USB 2.0, vous aurez de quoi stocker rapidement et emporter avec vous vos photos, vos films, etc.  La livraison est gratuite.


> Voir l'offre
7,50 €Bouée Alligator Intex à 7,50 €
Valable jusqu'au 22 Mai

Amazon fait une promotion sur la bouée Alligator Intex à chevaucher avec 2 poignées de maintien qui passe à 7,50 € au lieu de 8,99 €.


> Voir l'offre

Sujets relatifs
probleme avec macro sur excel 2007
Petit probleme de débutant :=)
Petit problème avec Excel
petit problème formule ou macro
petit problème avec word !
problème de macro avec excel
Problème de menu avec une macro
Petit problème avec word
Petit problème con avec Word (affichage)
petit problème avec Outlook Express
Plus de sujets relatifs à petit problème avec ma macro (débutant!!)
 > Tous les forums > Forum Bureautique