Même format range("A") = range("B")

  • Initiateur de la discussion ChuBaKa
  • Date de début
C

ChuBaKa

Guest
Bonjour le forum,

J'utilise dans un programme VBA la commande de base suivante : Range(''feuil1'!A' & i).value = Range(''feuil2'!C' & j).value où i et j sont des variables. La commande fonctionne bien, mais j'ai un problème. Le format de la cellule n'est pas conservé. J’ai par exemples des dates qui passent du format jj/mm/aa au format 38882 par exemple. Quelqu'un saurait-il modifier cette commande pour que, en résumé, la cellule de destination conserve le format de la cellule de départ ?
Je présume qu'il ne faut pas passer par un '.value', mais je ne sais pas quoi essayer d'autre sans ralentir trop mon programme (qui n'est déjà pas trés rapide !!!).

Par avance, merci à ceux qui pourront m'aider

Salutations
 

porcinet82

XLDnaute Barbatruc
Salut ChuBaKa,

Je viens de faire un essai avec ton code et chez moi il ne fonctionne pas, erreur 1004 je crois.
Je te propose le code suivant qui chez moi me garde le format date :
Code:
Sheets('feuil1').Range('A' & i).Value = Sheets('feuil2').Range('C' & i).Value

@+
 

pierrejean

XLDnaute Barbatruc
Re:Même format range(\"A\") = range(\"B\")

bonjour ChuBaKa
salut Porcinet

pour ton probleme de format le mieux est de mettre en tete de ta macro:

Sheets('Feuil2').Columns(3).NumberFormat = 'dd/mm/yy'

bien sur, si d'autres cellules doivent avoir un autre format, il faut individualiser le NumberFormat

edit: feuil2 et non feuil1

Message édité par: pierrejean, à: 12/04/2006 13:42
 
C

ChuBaKa

Guest
Bonjour Porcinet82,

Merci pour ta réponse.
Tu trouveras ci-joint un fichier exemple dans lequel ma ligne de commande fonctionne.
Appuie une fois sur le bouton de la Feuil1, tu verras que la valeur A1 de la Feuil1 = la valeur C2 de la Feuil2. Mais si tu change ensuite la valeur C2 de la Feuil2 (met la par exemple à 3 et change le format de la cellule en 'standard') et que tu retourne sur la Feuil1 et que tu appuis à nouveau sur le bouton, tu verras que la valeur de A1 change, mais le format reste en 'date'. C'est mon problème.

Salutations
 
C

ChuBaKa

Guest
Bonjour pierrejean,

Merci pour ta réponse.
Le problème, c'est que ma ligne de commande s'éxécute en boucle sur plusieurs colonne. Ces colonnes ont des formats différents. Ta solution fonctionnerait, mais, si je l'ai bien comprise, elle m'obligerait à tenir à jour une matrice de correspondance entre le format de la colonne et le numéro de la colonne.
Je cherche en fait à automatiser cela.

Salutations
 

pierrejean

XLDnaute Barbatruc
Re:Même format range(\"A\") = range(\"B\")

re ChuBaka

ton fichier n'est pas passé

mais comme tu exposes ton probleme il semble qu'il faille ajouter cette ligne

Range(''feuil1'!A' & i).NumberFormat = Range(''feuil2'!C' & j).NumberFormat

excuses
pas rafraichis

Message édité par: pierrejean, à: 12/04/2006 14:56
 

Discussions similaires

Statistiques des forums

Discussions
312 939
Messages
2 093 788
Membres
105 836
dernier inscrit
Frederic14