références aux données d'une autre feuille

  • Initiateur de la discussion Vincente
  • Date de début
V

Vincente

Guest
Bonjour,

je cherche à faire la manip suivante:

j'ai une serie de cellule sur une page de mon classeur qui doivent contenir les données stockées sur une autre page du classeur.

j'ai essayé le code suivant qui ne fonctionne pas


Code:
Application.Workbooks(1).Worksheets('feuille1').Range('B10:D10') = Application.Workbooks(1).Worksheets('feuille2').Range('B11:D11')[
 

bbmarcus

XLDnaute Occasionnel
Salut Vicente, le forum,

tu peux utiliser un code copier/coller comme:
Sheets('feuille2').Select
Range('AF6:AF23').Select
Selection.Copy
Sheets('feuille1').Select
Range('C17').Select
ActiveSheet.Paste

A utiliser après sous la forme que tu veux....

bbmarcus
 

2passage

XLDnaute Impliqué
Bonjour,

Tout a fait.. ou avec cette syntaxe :
Code:
Workbooks(1).Worksheets('feuille2').Range('B11:D11').copy Workbooks(1).Worksheets('feuille1').Range('B10:D10')

A+

EDIT : Oooops ! .. à l'envers.... là, c est bon...

Message édité par: 2passage, à: 28/06/2005 14:49
 
B

bertand

Guest
bonjour vincente

je vois deux choses nom de l'onglet des feuilles est généralement 'Feuil1' et non 'feuille1'
et tes instruction doivent se terminer par .value

Application.Workbooks(1).Worksheets('feuil1').Range('B10:D10').value = Application.Workbooks(1).Worksheets('feuil2').Range('B11:D11').value

Là ça devrait marcher : la plage b10:d10 de la feuille1 devrait se renseigner automatiquement.

@+
 

JORDAN

XLDnaute Impliqué
Bonjour Vicente

Tu peux faire :

Option Explicit
Dim i As Integer
Dim j As Integer

Sub essai()

For i = 1 To 10
For j = 1 To 10
Worksheets('feuil2').Cells(i, j) = Worksheets('feuil1').Cells(i, j)
Next j
Next i

End Sub

A+
 
V

Vincente

Guest
Bonjour,

Merci à tous

j'ai un petit probleme


Code:
Application.Workbooks(1).Worksheets('feuil1').Range('B10:D10').value = Application.Workbooks(1).Worksheets('feuil2').Range('D9:D11').value

mes donnees sont en colonnes et la réference de ces données est en ligne, et il semblerait que seule la première valeur de la colonne est copiée..
 
B

bertrand

Guest
re vincente

ben si tu changes le probleme la solution consiste a copier puis à coller en transposant

donc

Application.Workbooks(1).Worksheets('feuil2').Range('D9:D11').copy

Application.Workbooks(1).Worksheets('feuil1').Range('B10:D10').pastespecial transpose:=true.

et ca devrait aller

@+
 
V

Vincente

Guest
Génial ,

mais j'ai un dernier probleme : la copie fait un dommage collatéral , la présentation de la cellule cible. Les bordures et les couleurs s'efface, j'ai l'impression que 'copy' copie aussi la présentation de la cellule source...
 

bbmarcus

XLDnaute Occasionnel
Vicente,

effectivement, ca te copie ta cellule, comme dans n'importe quel copier/coller....

Alors juste un petit conseil: tu peux créer ta propre macro avec l'assistant....
Outils/macro/creer une macro.

tu copie la cellule de ton choix
tu va sur la feuille de destination, et tu fais collage spécial
copier les valeurs uniquement
transpose
ok....

Ensuite tu arrete l'enregistrement de la macro, et tu la copie dans VBA.........

ca devrais aller

bbmarcus
 
V

Vincente

Guest
Bonjour,

Merci à tous

j'ai un petit probleme


Code:
Application.Workbooks(1).Worksheets('feuil1').Range('B10:D10').value = Application.Workbooks(1).Worksheets('feuil2').Range('D9:D11').value

mes donnees sont en colonnes et la réference de ces données est en ligne, et il semblerait que seule la première valeur de la colonne est copiée..
 
B

bertrand

Guest
re

effectivement par defaut il copie tout.

pour n'avoir que les valeurs :
Application.Workbooks(1).Worksheets('feuil1').Range('B10:D10').pastespecial Paste:=xlPasteValues, transpose:=true

il faut simplement le lui dire avant de transposer

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 449
Membres
103 213
dernier inscrit
Poupoule