[Résolu] - Copier coller zone nommée dynamique

castor30

XLDnaute Occasionnel
Bonjour le forum,
Je cherche code pour faire l'action suivante :
de Feuil1 copier zone nommée "Noms"
pour coller valeurs :
en Feuil2 coller dans cellule nommée "Nom"
En vous remerciant.
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Bonsoir à tous, Bonsoir Staple, Bonsoir castor 30,
Si je puis intervenir sur la macro de Staple qui marche !
Ce que l'on remarque ce sont ces lignes du début qui arrangent peut-être bien les choses compte tenu quelles nettoient ( effacent entièrement tout) parfaitement les feuilles concernées avant de nommer les cellules:
Code:
Feuil1.Cells.Clear: Feuil2.Cells.Clear
Peut-être je me trompe compte tenu que ma macro fonctionne chez moi avec Excel 2007 et pas chez lui !
Bonne soirée à vous tous !
 

Staple1600

XLDnaute Barbatruc
Re,

JBARBE
Je te rassure ta macro fonctionne chez moi aussi ;)
Comme ces deux versions simplifiées de ta macro également
VB:
Sub Macro2()
    Range("Noms").Copy
    Sheets("Feuil2").Range("Nom").PasteSpecial Paste:=xlPasteValues
End Sub

Sub Macro3()
    Range("Noms").Copy
    Sheets("Feuil2").Range("Nom").PasteSpecial -4163
End Sub

Ce qui nous mène en version ultra-simplifiée à ce que je postais à 21:02 ;)
Code:
Sub z()
[Noms].Copy: [Nom].PasteSpecial -4163
End Sub
 

JBARBE

XLDnaute Barbatruc
Re,
C'est tout de même bizarre que cela fonctionne à 22h40 et pas à 21h02 !
Néanmoins je lui conseille d'utiliser l'enregistreur de macro comme je l'ai fait pour mon code !
C'est simple il suffit de suivre les conseils de ce site !
Cela comme essai ( ça peut servir par la suite) mais n'empêchant pas d'utiliser le code simple de Staple !
Code:
https://support.office.com/fr-fr/article/Automatiser-des-t%C3%A2ches-avec-l-enregistreur-de-macro-974ef220-f716-4e01-b015-3ea70e64937b
Bonne soirée à tous !
 

Staple1600

XLDnaute Barbatruc
Re

JBARBE
Tu m'as mal lu.
Je voulais juste dire que depuis le début, les codes que j'ai posté ici fonctionnent
Et la macro z est simplement la simplification extrême du code classique que donne l'enregistreur de macros.
Donc que ce soit ta macro de 21:31 ou ma macro de 21:02 et même celle de 20:38, elles fonctionnent toutes les trois.

NB: Elles fonctionnent certes, mais avec un côté aberrant tout de même si on y regarde de plus prés.
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re,
Staple je t'ai parfaitement compris et n'ai eu jamais de doute sur tes macros compte tenu que je te connais très bien !
L'exemple de l'enregistreur de macro n'est qu'une info pour castor 30 qui je l’espère pourra l'aider par la suite !
Néanmoins, ce que je constate, c'est que castor 30 a posté beaucoup de post ces derniers temps ( je n'ai pas eu l'occasion de les consultés ) et de ce fait malgré son inscription en 2014, celui-ci reste un néophyte d'Excel !
https://www.excel-downloads.com/threads/erreur-dans-code-résolu.20019955/#post-20146131
https://www.excel-downloads.com/threads/résolu-par-yurperqod-modificaton-code-pour-outloock-2003.20019939/
https://www.excel-downloads.com/threads/résolu-par-dan-problème-fonction-decaler.20019914/
Donc excusons le pour ces petits incidents dont je m'aurais abstenu d'intervenir si c'était à refaire !
Bonne nuit !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Je ne sais pas qui est castor30, s'il est néophyte ou pas, sagittaire ou né un soir de grand vent. ;)
Peu me chaut.

Je dis juste qu'il est pas nécessaire d'employer plus d'une heure pour démontrer qu'un code VBA fonctionne.

NB: Personnellement, je n'ai vu survenir aucun petit incident dans ce fil, j'ai simplement vu s’égrener les minutes en vain ;)
 

Staple1600

XLDnaute Barbatruc
Re,

[Addenda]
NB: Elles fonctionnent certes, mais avec un côté aberrant tout de même si on y regarde de plus prés.
La logique voudrait qu'on copie une plage nommée dans une plage nommée de même taille
Or ce n'est pas ce que fait ma macro.
Mais si elles sont nommées et de même taille, alors pourquoi vouloir en copier l'une dans l'autre ???
[/Addenda]
Une dernière macro pour illustrer mon propos
VB:
Sub La_Preuve_Et_Xplications()
Dim Message$
'création des éléments pour test
Feuil1.Cells.Clear: Feuil2.Cells.Clear
Feuil1.[A1:C5].Name = "Noms": Feuil2.[C8:C9].Name = "Nom"
'Informations sur les plages nommées
Message = "Noms=" & [Noms].Address(0, 0) & vbCrLf & "Nom=" & [Nom].Address(0, 0) & vbCrLf
Message = Message & "NB Cellules dans Noms: " & [Noms].Count & vbCrLf & "NB Cellules dans Nom: " & [Nom].Count & vbCrLf
Message = Message & vbCrLf & "On copie donc 15 cellules dans 2 cellules??? C'est pas logique"
MsgBox Message, vbCritical, "Y a comme un blème, non ?"
[Noms] = "=RAND()": [Noms].Font.Bold = True: [Noms].Interior.Color = RGB(123, 241, 158)

'recopie
[Noms].Copy: [Nom].PasteSpecial -4163
MsgBox "En fait on copié le nombres de cellules de Noms," & vbCrLf & "dans les cellules contigues de la 1ere cellule de Nom", vbInformation
MsgBox "Nom=" & [Nom].CurrentRegion.Address(0, 0) & vbCrLf & "(Pour mémoire au départ Nom=C8:C9)", vbExclamation
End Sub
 
Dernière édition:

castor30

XLDnaute Occasionnel
Bonjour Staple, JBARBE,
Je suis sincèrement désolé de vous avoir fait perdre de votre temps et vous remercie chaleureusement de votre patience et de vos explications.
Oui je me suis inscrit voici 3 ans, mais pas fait grand chose avec Excel (rénovation maison oblige).
Ce matin, j'ai porté mon attention à mes zones nommées et constaté l'erreur suivante :
Ma zone nommée Liste comportait cette formule avec l'erreur en rouge:
=DECALER(Base!$A$2;;;NBVAL(Base!$B:$B)-1;1)
En la corrigeant comme suit :
=DECALER(Base!$A$2;;;NBVAL(Base!$A:$A)-1;1)
Le code de Staple donné en tout début fonctionne parfaitement, tout comme le code de JBARBE.
Staple, j'ai bien suivi ton premier conseil qui marche impeccable, j'essaie juste de poursuivre l'idée de départ pour apprendre car débutant.
Je vous prie de bien vouloir m'excuser et me pardonner mon ignorance et vous remercie de nouveau.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

castor30
[aparté]
Tout comme il n'est pas nécessaire de s'appesantir sur une macro postée par un répondeur
(car on présuppose que le répondeur teste ses macros avant de les poster et ce depuis la nuit des temps) , il n'est pas nécessaire de t'excuser à tout va.
Je n'ai jamais écrit que j'avais perdu mon temps puisque je suis ici de mon plein gré.
Tu n'avais non plus écrit dés ton premier message que ta zone nommée était dynamique et définie par une formule...

[/aparté]

Merci de bien vouloir retirer mon pseudo dans le titre de ta discussion
Pourquoi ?

• Sinon quid de mes questionnements et ma dernière macro?
(voir message de 01h21)
Si une plage nommée existe dans un classeur, pourquoi la dupliquer ???
 
Dernière édition:

Si...

XLDnaute Barbatruc
Bon_jour
Re,
La logique voudrait qu'on copie une plage nommée dans une plage nommée de même taille

Ta logique;)... voilà le genre de demande (#1) qui me laisse sans voix et sans voie* !

On ne peut apporter une réponse convenable que dans un contexte précis.

Jette un œil sur le fichier que je t'ai concocté et dis-moi ce que tu penses de Ta première proposition.

*Il m'arrive de le faire mais, quand on me répond «cela ne va pas» , je vais; ipso facto, voir ailleurs si j'y suis ! Je ne veux pas m'embêter comme toi et JBarbe (salut) dans des cas similaires.

Les demandeurs devraient le comprendre sans qu'on soit obligé de leur rappeler. On voit même des captures d'écran pour tout renseignement :eek:!

 

Pièces jointes

  • CopiePlage.xlsm
    28 KB · Affichages: 30

JBARBE

XLDnaute Barbatruc
Bonjour à tous, Bonjour Si ( désolè pas vu )
Comme Staple il n'est pas nécessaire de mettre mon pseudo dans le titre de la discussion compte tenu que Staple avait fait le nécessaire avant mon post !
Content quand même pour toi castor 30 d'avoir trouvé solution à ton problème !
Bonne journée à tous !
 

Staple1600

XLDnaute Barbatruc
Bonjour Si...

Bon_jour
Ta logique;)... (voir MP)
Jette un œil sur le fichier que je t'ai concocté et dis-moi ce que tu penses de Ta première proposition.
J'ai jeté mon oeil gauche sur
VB:
Private Sub GoGo_Click()
    Application.Calculation = -4135
    Application.DisplayAlerts = 0
    [Noms].Copy: [Nom].PasteSpecial -4163
    Application.DisplayAlerts = 1
    [A1].Select
End Sub
Ce qui m'a illico propulser vers ceci ;)
https://youtu.be/kz7j-hP0mUE
 

Discussions similaires

Réponses
3
Affichages
203

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane