Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Copie de cellule

  • Initiateur de la discussion Initiateur de la discussion Delorme
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Delorme

XLDnaute Occasionnel
Bonjour à tous

je viens vers vous car je bute sur du langage VBA

J'ai fais 2 macros
La première fonctionne, et pas la deuxième alors que la syntaxe est la même seuls les cellules et feuilles different

2eme question

pourquoi en renommant manuellement une feuille, celle ci est refusée dans ma procédure ex: feuil3 renommee mois n'est pas acceptée dans copy dans la macro copymois

ci joint fichier

merci

MICHEL DELORME
 

Pièces jointes

Bonsoir
Une feuille a deux propriétés nom
Le name de la feuille ( celui qui est inscrit sue l'onglet)
et le codename de la feuille ( le nom qui est inscrit dans le projet VBA
exemple :
Sheets("feuil1").Select : tu travailles avec le name de la feuille
Feuil2.Range("a3") : tu travailles avec le code name de la feuille.

Conclusion tes deux macro fonctionnent correctement.
Pour la macro 2:
Pour la feuille 4 le code name est Feuil3 donc en fait dans ta deuxième macro tu copies K17 sur cette même feuille en X15

Concernant le renommage manuel de la feuille c'est tout à fait normal que ta macro ne fonctionne plus , d'ou l'utilité de travailler avec le code name

En jaune le code name en rouge le name

Pour comprendre
Sub tutu()
MsgBox Sheets("Feuil4").CodeName
End Sub
Pour comprendre
VB:
Sub tutu()
    MsgBox Sheets("Feuil4").CodeName
End Sub
 
Dernière édition:
Bonjour @Delorme
Edit Bonjour @JM27 désolé du doublon mais pas rafraichi !

Une remarque importante

Sheets("Feuil1")
n'est pas du tout pareil à Feuil1

Feuil1 fait référence au codename de la feuille
Feuil1.Range("A1")

Codename de la feuille



Alors que Sheets("Feuil1") fait référence au name de la feuille 1

Worksheets("Feuil1").Range("A1")

Name de la feuille



Et si en plus tu mélanges dans ton fichier le name et le codename



Donc quand tu écris ce code tu parles de quoi car c'est tordu pour le savoir
Sub rangecopymois()
Sheets("feuil4").Select
Range("k17").Select
Range("k17").Copy Feuil3.Range("x15")
End Sub

Et comme tu as interverti le name 3 avec le codename 4 et vice versa !!!! 😵

Et si tu veux renommer comme tu veux tes onglets alors il faut écrire ton code VBA avec le codename comme cela le nom interne de la feuille est toujours le même et non modifiable par l'utilisateur sans aller dans le code VBA.

Je te propose en tenant compte de ce que je viens de te dire :

Sub rangecopy()
Feuil2.Range("A3") = Feuil1.Range("D2")
End Sub
Et cela :
Mais sans certitude de ce que tu veux réellement faire ici
Sub rangecopymois()
Feuil4.Range("X15") = Feuil4.Range("K17")
End Sub

2eme question

pourquoi en renommant manuellement une feuille, celle ci est refusée dans ma procédure ex: feuil3 renommee mois n'est pas acceptée dans copy dans la macro copymois
C'est pourquoi tu plantes la macro quand tu renommes tes onglets voir mon explication plus haut !!!!

Merci de ton retour

@Phil69970
 
Bonjour
Merci de ta réponse
Je suis passionné d'excel et quelques fois j'ai beaucoup de difficultés à comprendre la logique du vba
je découvre avec toutes tes explications le name et code name des feuilles
je vais donc devoir digérer tout ca
au fil des videos YouTube j'essaie de refaire les exercices et je me plante royalement
je suis content de pouvoir poser mes problèmes sur ce site ou on me répond toujours et j'en garde sur mon ordi toutes ces réponses judicieuses
j'aurais aimé si tu as le temps de m'écrire la macro ou je peux employer le nom d'une feuille renommee manuellement, en attendant d'explorer toutes tes solutions
merci merci
MICHEL DELORME
 
Dans la fenètre VBA project
Clic sur la feuille dont tu souhaites changer le codename
puis affichage /Fenètre propriéte et changer le propriété (name) celui du haut des propriétés
Attention il y a deux names
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…