VBA lire.cellule

Bonjour au forum,

A partir d'un menu perso., je lis le contenu de certaines cellules du fichier actif "Rapidos.xls"

puis je range ces valeurs dans un autre fichier "Béton.xls"

Comment écrire cela en VBA ?

sachant que je ne veux pas de liaisons !

ci-dessous la macro actuelle en Exel4.

données    
=LIRE.DOCUMENT(1)    ''fichier appelant
=SEL.CLASSEUR("IDO";"IDO")    
=LIRE.CELLULE(5;!J8)    ''N° piece
=LIRE.CELLULE(5;!F8)    ''désign
=LIRE.CELLULE(5;!L7)    ''ensemble
=LIRE.CELLULE(5;!G7)    ''unit
=LIRE.CELLULE(5;!épais)    ''épais
=LIRE.CELLULE(5;!U1)    ''long
=LIRE.CELLULE(5;!U2)    ''larg
=LIRE.CELLULE(5;!AI7)    ''prof
=LIRE.CELLULE(5;!AI8)    ''surf à déduire

=ACTIVER("Beton.xls")    ''changement fichier
=SEL.CLASSEUR("beton";"beton")    
=FORMULE(A4;!E2)    ''N° piece
=FORMULE(A5;!E1)    ''désign
=FORMULE(A6;!H1)    ''ensemble
=FORMULE(A7;!H2)    ''unit
=FORMULE(A8;!F4)    ''épais
=FORMULE(A9;!F8)    ''larg
=FORMULE(A10;!F7)    ''long
=FORMULE(A11;!F6)    ''prof
=FORMULE((1-A12)*Feuil1!Q4;!F11)    ''surf à déduire
=SEL.CLASSEUR("constr";"constr")    
=RETOUR()    

Merci d'avance

Amicalement......Claude.

re,

PS: la macro pré-citée est dans le fichier "Béton.xls"

à vous lire

Claude.

Salut Claude et le forum

Tu pourrait te servir quand même de liaisons temporaires.

Un bout de code sur un fichier fermé facilement adaptable pour tes besoins.

'récupération de données dans un classeur fermé
'(méthode "classique" par établissement d'une liaison temporaire)
'(c'est aussi la technique habituellement conseillée pour essayer
'de récupérer des données d'un classeur endommagé)

Sub test()
 GetValuesFromAClosedWorkbook "D:", "TestADO.xls", "Feuil1", "A1:H25"
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
   fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
 With ActiveSheet.Range(cellRange)
  .Formula = "='" & fPath & "\[" & fName & "]" _
     & sName & "'!" & cellRange
  .Value = .Value
 End With
End Sub

Mytå

Bonjour au forum,

Mytå, je te remercie, mais à mon niveau, c'est encore du Chinois !

De plus je crois comprendre que les cellules doivent être contigües, ce qui n'est pas

mon cas ; et que les cellules à récupérer ne sont pas nommées.

Je suis un peu déçu sur ce coup là !

Ne pourrait-tu pas me faire un exemple sur 2 lignes seulement ?

çà me parait compliqué ! (je ne maitrise pas l'anglais)

amicalement

Claude.

Salut Claude et le forum

Je t'ai fait le début de la macro (2 valeurs)

Sub LireCelluleFichierFermé()
Dim fPath As String
Dim fName As String
Dim sName As String

fPath = "D:"
fName = "NomFichier.xls"
sName = "NomFeuille"

 With Range("E2")
  .Formula = "='" & fPath & "\[" & fName & "]" _
     & sName & "'!" & "J8"
  .Value = .Value
 End With

  With Range("E1")
  .Formula = "='" & fPath & "\[" & fName & "]" _
     & sName & "'!" & "F8"
  .Value = .Value
 End With

'La suite du code
'H1=L7 , H2=G7 ...

End Sub

Mytå

Merci Mytå,

çà marche très bien.

amicalement......Claude.

PS: J'ai mis mon fichier" DVD" avec liste déroulante sur le post Applications Excel

Le plaisr pour moi de t'avoir dépanner encore Claude

Au plaisr d'une réponse sur d'autres ficelles.

Mytå

Rechercher des sujets similaires à "vba lire"