Excel : Copies de données
Résolu/Fermé
dertygun
-
11 juil. 2008 à 02:35
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 - 16 juil. 2008 à 20:33
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 - 16 juil. 2008 à 20:33
A voir également:
- Excel : Copies de données
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
8 réponses
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
11 juil. 2008 à 18:32
11 juil. 2008 à 18:32
Bonjour
A partir de la Feuille 1, appuie sur la touche Ctrl et clique sur l'onglet Feuille 2 sans relacher Ctrl
Ensuite clique dans la (ou les) cellule(s) de Feuille 1 et change les couleurs --> la Feuille 2 est mise à jour automatiquement
Clique ensuite sur Feuille 3 pour déselectionner les deux premières feuilles
à plus
A partir de la Feuille 1, appuie sur la touche Ctrl et clique sur l'onglet Feuille 2 sans relacher Ctrl
Ensuite clique dans la (ou les) cellule(s) de Feuille 1 et change les couleurs --> la Feuille 2 est mise à jour automatiquement
Clique ensuite sur Feuille 3 pour déselectionner les deux premières feuilles
à plus
Merci.
Mais peut tu me dire comment tu ferais dans le cas ou ces tableau ne sont pas dans le meme document Excel (donc pas d'onglet), mais dans deux documents Excel distinct.
Mais peut tu me dire comment tu ferais dans le cas ou ces tableau ne sont pas dans le meme document Excel (donc pas d'onglet), mais dans deux documents Excel distinct.
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
12 juil. 2008 à 11:50
12 juil. 2008 à 11:50
Bonjour
Effectivement, avec 2 classeurs ça ne marche pas.
A mon avis, il faut passer par une macro commande "Worksheet_SelectionChange" à incorporer dans la feuille1 de ton 1er classeur pour tester s'il y a un changement de propriété de la cellule afin de recopier le nouveau format de cellule
ou,
d'une façon plus "basique" (je dirais "bestiale"), réaliser une copie systématique du format de la dernière cellule active dans la même cellule de ton classeur 2
Es-tu familiarisé avec les macros VBA ?
à plus
Effectivement, avec 2 classeurs ça ne marche pas.
A mon avis, il faut passer par une macro commande "Worksheet_SelectionChange" à incorporer dans la feuille1 de ton 1er classeur pour tester s'il y a un changement de propriété de la cellule afin de recopier le nouveau format de cellule
ou,
d'une façon plus "basique" (je dirais "bestiale"), réaliser une copie systématique du format de la dernière cellule active dans la même cellule de ton classeur 2
Es-tu familiarisé avec les macros VBA ?
à plus
"Es-tu familiarisé avec les macros VBA ? "
- Pas du tout, je vois ce que c'est, j'en utilise pour certain fichier, mais c'est encore un total trou noir pour moi, Cependant je suis sur que seul une macro pourait regler mon probleme.
IL faudrait logiquement une macro qui puisse copié, en plus des données de ma cellule, le "code couleur" des données de ma cellule A5 (claseur 1) sur ma cellule A5 (classeur 2)...je suis a peu près bon ou c'est pas du tout sa ???
- Pas du tout, je vois ce que c'est, j'en utilise pour certain fichier, mais c'est encore un total trou noir pour moi, Cependant je suis sur que seul une macro pourait regler mon probleme.
IL faudrait logiquement une macro qui puisse copié, en plus des données de ma cellule, le "code couleur" des données de ma cellule A5 (claseur 1) sur ma cellule A5 (classeur 2)...je suis a peu près bon ou c'est pas du tout sa ???
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
12 juil. 2008 à 18:05
12 juil. 2008 à 18:05
Bonjour
Voici un petit exemple avec des macros : https://www.cjoint.com/?hmr2lgJvXd
Mode d'emploi :
Extrait les 2 fichiers de Test_Données.Zip
Ouvre uniquement le fichier Test_Données1.xls (il faut accepter l'exécution des macros)
(à l'ouverture de ce fichier, Test_Données2.xls sera ouvert automatiquement)
Dans la feuille1, tu peux saisir ou modifier le format de n'importe qu'elle cellule, celle ci sera copiée automatiquement dans le fichier Test_Données2.xls.
Si tu veux modifier le nom des fichiers, il est impératif de conserver les N° (ex = nouveauNom1.xls)
Est-ce que cela te conviens ?
a plus
Voici un petit exemple avec des macros : https://www.cjoint.com/?hmr2lgJvXd
Mode d'emploi :
Extrait les 2 fichiers de Test_Données.Zip
Ouvre uniquement le fichier Test_Données1.xls (il faut accepter l'exécution des macros)
(à l'ouverture de ce fichier, Test_Données2.xls sera ouvert automatiquement)
Dans la feuille1, tu peux saisir ou modifier le format de n'importe qu'elle cellule, celle ci sera copiée automatiquement dans le fichier Test_Données2.xls.
Si tu veux modifier le nom des fichiers, il est impératif de conserver les N° (ex = nouveauNom1.xls)
Est-ce que cela te conviens ?
a plus
En effet c'est exactement sa. J'ai cependant une question :
Comment fait on pour que la copie soit faite uniquement sur une plage de cellule (du genre B3;F8) et non sur toutes les cellules de la page.
Comment fait on pour que la copie soit faite uniquement sur une plage de cellule (du genre B3;F8) et non sur toutes les cellules de la page.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If FlagRéférences = 1 Then Exit Sub
FlagRéférences = 1
Application.ScreenUpdating = False
Add2 = ActiveCell.Address
Add = Cells(LigF1, ColF1).Address
Cells(LigF1, ColF1).Copy
Windows(NomFichierSecondaire).ActiveSheet.Range(Add).PasteSpecial
Application.CutCopyMode = False
Range(Add2).Select
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Application.ScreenUpdating = True
FlagRéférences = 0
End Sub
Si je veut electionner la plage de cellule ("B3:F8") par exemple, quels sont les critères que je dois changer
If FlagRéférences = 1 Then Exit Sub
FlagRéférences = 1
Application.ScreenUpdating = False
Add2 = ActiveCell.Address
Add = Cells(LigF1, ColF1).Address
Cells(LigF1, ColF1).Copy
Windows(NomFichierSecondaire).ActiveSheet.Range(Add).PasteSpecial
Application.CutCopyMode = False
Range(Add2).Select
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Application.ScreenUpdating = True
FlagRéférences = 0
End Sub
Si je veut electionner la plage de cellule ("B3:F8") par exemple, quels sont les critères que je dois changer
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
>
dertygun
13 juil. 2008 à 09:55
13 juil. 2008 à 09:55
bonjour
il faut ajouter la ligne de commande : ActiveSheet.ScrollArea = "B3:G15"
dans la procédure :
pour limiter la saisie à la plage B3:G15 par exemple
Pour autoriser la saisie sur toutes la saisie, utilise : ActiveSheet.ScrollArea = ""
à plus
il faut ajouter la ligne de commande : ActiveSheet.ScrollArea = "B3:G15"
dans la procédure :
Private Sub Workbook_Open() ColF1 = ActiveCell.Column LigF1 = ActiveCell.Row Chemin = ActiveWorkbook.Path NomFichierPrincipal = ActiveWorkbook.Name NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "2.xls" Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire Windows(NomFichierPrincipal).Activate ActiveSheet.ScrollArea = "B3:G15" End Sub
pour limiter la saisie à la plage B3:G15 par exemple
Pour autoriser la saisie sur toutes la saisie, utilise : ActiveSheet.ScrollArea = ""
à plus
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
le seul probleme de cette manip, c'est que je ne peut plus acceder aux autres cellules de la feuille
Disons que la feuille de mon premier classeur j'ai sa :
Donnée A
Donnée B
Tableau C
et sur la feuille de mon second classeur j'ai :
Donnée D
Donnée E
Tableau C
donc quand j'autorise la saisie sur toutes les cellules de la feuille de mon premier classeur, il me copie toutes les donnee alors que seul le tableau doit l'etre.
Et quand je met juste une plage de celllule (avec le code que vous venez de me donner), je ne peut acceder a aucune autres cellules, a part celles de la plage sellectionner, ce qui est genant, puisque je ne peut plus acceder aux autres informations de ma feuille.
Tout serais donc parfait si le code me laissait aussi naviguer tranquillement sur les autres cellules, pas comprises dans le "ActiveSheet.ScrollArea = "..:..." "
Disons que la feuille de mon premier classeur j'ai sa :
Donnée A
Donnée B
Tableau C
et sur la feuille de mon second classeur j'ai :
Donnée D
Donnée E
Tableau C
donc quand j'autorise la saisie sur toutes les cellules de la feuille de mon premier classeur, il me copie toutes les donnee alors que seul le tableau doit l'etre.
Et quand je met juste une plage de celllule (avec le code que vous venez de me donner), je ne peut acceder a aucune autres cellules, a part celles de la plage sellectionner, ce qui est genant, puisque je ne peut plus acceder aux autres informations de ma feuille.
Tout serais donc parfait si le code me laissait aussi naviguer tranquillement sur les autres cellules, pas comprises dans le "ActiveSheet.ScrollArea = "..:..." "
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
14 juil. 2008 à 09:58
14 juil. 2008 à 09:58
Bonjour
Effectivement, je n'avais pas saisi ta question.
Voici une version rectifiée qui ne prend en compte la saisie de données que dans une certaine plage de cellules ("B3:G15" dans cet exemple)
https://www.cjoint.com/?hoj3FEsFCn
à plus
Effectivement, je n'avais pas saisi ta question.
Voici une version rectifiée qui ne prend en compte la saisie de données que dans une certaine plage de cellules ("B3:G15" dans cet exemple)
https://www.cjoint.com/?hoj3FEsFCn
à plus
C'est EXACTEMENT sa !!
Je tiens a vous remercier particulierement pour l'aide que vous m'avez apporté et le tempsque cette macro va me faire gagner !
Je tiens a vous remercier particulierement pour l'aide que vous m'avez apporté et le tempsque cette macro va me faire gagner !
juste une derniere question.
Je souhaite inclure cette macro dans le fichier qui m'interesse, mais j'ai du mal.
Quels sont les donnee que je dois changer pour que sa marche, sachant que mon 1er fichier se nomme : "Année 2008 A" et le second "Année 2008 B".
Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If FlagRéférences = 1 Then Exit Sub
'Action seulement pour la zone "B3:G15"
Col = ActiveCell.Column
Lig = ActiveCell.Row
If Col < 2 Or Col > 8 Then Exit Sub
If Lig < 3 Or Lig > 15 Then Exit Sub
'----------------------------------------
FlagRéférences = 1
Application.ScreenUpdating = False
Add2 = ActiveCell.Address
Add = Cells(LigF1, ColF1).Address
Cells(LigF1, ColF1).Copy
Windows(NomFichierSecondaire).ActiveSheet.Range(Add).PasteSpecial
Application.CutCopyMode = False
Range(Add2).Select
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Application.ScreenUpdating = True
FlagRéférences = 0
End Sub
thosWorbook
Private Sub Workbook_Open()
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Chemin = ActiveWorkbook.Path
NomFichierPrincipal = ActiveWorkbook.Name
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "2.xls"
Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire
Windows(NomFichierPrincipal).Activate
ActiveSheet.ScrollArea = ""
End Sub
Module 1
Public Chemin As String
Public NomFichierPrincipal As String
Public NomFichierSecondaire As String
Public ColF1
Public LigF1
Public FlagRéférences
Ps : Faut t'il que je mettent mes deux fichiers dans le meme dossier ou ce n'est pas nécéssaire ??
Je souhaite inclure cette macro dans le fichier qui m'interesse, mais j'ai du mal.
Quels sont les donnee que je dois changer pour que sa marche, sachant que mon 1er fichier se nomme : "Année 2008 A" et le second "Année 2008 B".
Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If FlagRéférences = 1 Then Exit Sub
'Action seulement pour la zone "B3:G15"
Col = ActiveCell.Column
Lig = ActiveCell.Row
If Col < 2 Or Col > 8 Then Exit Sub
If Lig < 3 Or Lig > 15 Then Exit Sub
'----------------------------------------
FlagRéférences = 1
Application.ScreenUpdating = False
Add2 = ActiveCell.Address
Add = Cells(LigF1, ColF1).Address
Cells(LigF1, ColF1).Copy
Windows(NomFichierSecondaire).ActiveSheet.Range(Add).PasteSpecial
Application.CutCopyMode = False
Range(Add2).Select
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Application.ScreenUpdating = True
FlagRéférences = 0
End Sub
thosWorbook
Private Sub Workbook_Open()
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Chemin = ActiveWorkbook.Path
NomFichierPrincipal = ActiveWorkbook.Name
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "2.xls"
Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire
Windows(NomFichierPrincipal).Activate
ActiveSheet.ScrollArea = ""
End Sub
Module 1
Public Chemin As String
Public NomFichierPrincipal As String
Public NomFichierSecondaire As String
Public ColF1
Public LigF1
Public FlagRéférences
Ps : Faut t'il que je mettent mes deux fichiers dans le meme dossier ou ce n'est pas nécéssaire ??
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
15 juil. 2008 à 13:21
15 juil. 2008 à 13:21
Bonjour
Il faut simplement modifier ainsi la ligne :
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
dans ThisWorkbook
Dans le code de l'exemple, il faut que le deux fichiers soient dans le même dossier.
Si tu veux des dossiers différents, il faut modifier le code ainsi :
à plus
Il faut simplement modifier ainsi la ligne :
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
dans ThisWorkbook
Dans le code de l'exemple, il faut que le deux fichiers soient dans le même dossier.
Si tu veux des dossiers différents, il faut modifier le code ainsi :
Private Sub Workbook_Open() ColF1 = ActiveCell.Column LigF1 = ActiveCell.Row Chemin = "c:\MonDossier2" ' préciser le chemin complet du 2ème fichier NomFichierPrincipal = ActiveWorkbook.Name NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls" Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire Windows(NomFichierPrincipal).Activate ActiveSheet.ScrollArea = "" End Sub
à plus
SA me met ce probleme qu'il ya une erreur et sa me met en jaune cette ligne :
Private Sub Workbook_Open()
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Chemin = "C:\Documents and Settings\jean philippe\Mes documents\\2008 - 2009 (V 2.1)\Année 2008 B"
NomFichierPrincipal = ActiveWorkbook.Name
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire
Windows(NomFichierPrincipal).Activate
ActiveSheet.ScrollArea = ""
End Sub
Private Sub Workbook_Open()
ColF1 = ActiveCell.Column
LigF1 = ActiveCell.Row
Chemin = "C:\Documents and Settings\jean philippe\Mes documents\\2008 - 2009 (V 2.1)\Année 2008 B"
NomFichierPrincipal = ActiveWorkbook.Name
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
Workbooks.Open Filename:=Chemin & "\" & NomFichierSecondaire
Windows(NomFichierPrincipal).Activate
ActiveSheet.ScrollArea = ""
End Sub
LePierre
Messages postés
249
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
337
>
dertygun
16 juil. 2008 à 20:33
16 juil. 2008 à 20:33
bonsoir
Si les noms des fichiers sont complétement différents il faut remplacer :
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
par :
NomFichierSecondaire = "Nom_Du_Fichier_Secondaire.xls"
en remplaçant "Nom_Du_Fichier_Secondaire.xls" par le nom de ton fichier.
à plus
Si les noms des fichiers sont complétement différents il faut remplacer :
NomFichierSecondaire = Left(NomFichierPrincipal, Len(NomFichierPrincipal) - 5) & "B.xls"
par :
NomFichierSecondaire = "Nom_Du_Fichier_Secondaire.xls"
en remplaçant "Nom_Du_Fichier_Secondaire.xls" par le nom de ton fichier.
à plus