Macro VBA Dimensionner un tableau excel
Fermé
Skoob
-
3 mars 2009 à 16:16
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 4 mars 2009 à 13:39
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 4 mars 2009 à 13:39
A voir également:
- Macro VBA Dimensionner un tableau excel
- Tableau croisé dynamique - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Liste déroulante excel - Guide
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 mars 2009 à 13:39
4 mars 2009 à 13:39
bonjour,
il faut que tu précises le nom de ton classeur "cible" et la feuille "cible"
la maquette que tu avais présenté copiait dans le meme fichier
la macro ci dessous copie la selection en ouvrant le classeur "cible" et inscrit le nom du classeur "source" en Z1
il faut que tu précises le nom de ton classeur "cible" et la feuille "cible"
la maquette que tu avais présenté copiait dans le meme fichier
la macro ci dessous copie la selection en ouvrant le classeur "cible" et inscrit le nom du classeur "source" en Z1
Sub Macro1() ' ' Macro1 Macro ' Macro enregistrée le 04/03/2009 par Michel_M ' ' Selection.Copy Workbooks.Open Filename:="D:\documents\cible.xls" 'a adapter Sheets("autre").Select 'a adapter Range("A1").Select ActiveSheet.Paste Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("Z1") = thisworbook.Name ' ligne écrite en VBA: range("Z1") à adapter End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
3 mars 2009 à 16:44
3 mars 2009 à 16:44
Bonjour,
Comme tu débutes (bienvenue à bord du Titanic!...) :-)
avec l'enregistreur de macro:
tu sélectionnes ton tableau source
copier
1/-coller dans le classeur-source
2/- edition-collage spécial-largeur de colonnes
pour le nom du classeur source, ce n'est pas bien compliqué mais essaies déjà les copies, renvoie nous le texte de la macro (Alt+F11 pour accèder si tu ne sais pas) et qqn ici t'expliquera
Comme tu débutes (bienvenue à bord du Titanic!...) :-)
avec l'enregistreur de macro:
tu sélectionnes ton tableau source
copier
1/-coller dans le classeur-source
2/- edition-collage spécial-largeur de colonnes
pour le nom du classeur source, ce n'est pas bien compliqué mais essaies déjà les copies, renvoie nous le texte de la macro (Alt+F11 pour accèder si tu ne sais pas) et qqn ici t'expliquera
Alors, j'avais déjà tenté en utilisant l'enregistreur de macro, et j'obtiens les lignes suivantes :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 03/03/2009 par e_schade
'
'
Range("A4:L32").Select
Selection.Copy
Sheets("Feuil1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Les problèmes qu'il y a :
- le Range("A4:L32").Select veut dire que j'ai choisi un tableau allant de A4 à L32 (si je ne me trompe pas). Or, cette plage a été prise au hasard, et dans mon projet je veux pouvoir etre libre de choisir les plages de données
- en voulant reproduire la macro (bouton play), j'ai l'erreur '1004' : La méthode PasteSpecial de la classe Range a échoué.
Du coup, je suis un peu perdu....
Par contre, tu me dis que pour obtenir le nom du classeur source, ce n'est pas bien compliqué. Peux tu me donner la marche à suivre ?
Merci;
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 03/03/2009 par e_schade
'
'
Range("A4:L32").Select
Selection.Copy
Sheets("Feuil1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Les problèmes qu'il y a :
- le Range("A4:L32").Select veut dire que j'ai choisi un tableau allant de A4 à L32 (si je ne me trompe pas). Or, cette plage a été prise au hasard, et dans mon projet je veux pouvoir etre libre de choisir les plages de données
- en voulant reproduire la macro (bouton play), j'ai l'erreur '1004' : La méthode PasteSpecial de la classe Range a échoué.
Du coup, je suis un peu perdu....
Par contre, tu me dis que pour obtenir le nom du classeur source, ce n'est pas bien compliqué. Peux tu me donner la marche à suivre ?
Merci;
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
3 mars 2009 à 17:59
3 mars 2009 à 17:59
Re,
ci dessous macro à l'enregistreur (maquette à adapter) tu avais oublié le 1° paste
avant tu sélectionnes ton tableau "source"
ci dessous macro à l'enregistreur (maquette à adapter) tu avais oublié le 1° paste
avant tu sélectionnes ton tableau "source"
Sub Macro1() Selection.Copy Sheets("Feuil2").Select ActiveSheet.Paste Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False 'on ajoute l'instruction VBA pour écrire dans la cellule "Z1", par exemple,le nom du fichier source où tu as écris cette macro Range("Z1") = ThisWorkbook.Name End Sub