Lecture fichier Excel sous VBA

Bonjour,

je dispose d'un fichier appelé "pluie" sous excel et j'aimerais savoir comment le lire a partir d'un autre classeur excel.

j'aimerai avoir la valeur A2 du fichier qui correspond à l'année de la mesure mais je n'y arrive pas

je vous laisse mon travail et je vous serais trés reconnaissant de trouver la ou les erreurs

(par contre la partie du programme pour savoir si l'année est bissextile ou non est bonne)

Merci d'avance

Sub max()

Dim v() As Single

Dim i As Integer, pluie As String

Dim MOY As Single

Dim titre As Single

Dim N As Variant

Dim b As Integer

Dim c As Integer

pluie = Application.GetOpenFilename

Open pluie For Input As #1

Input #1, titre

For i = 1 To N

Input #1, v(i)

Next i

ReDim v(N)

'année bissextile si divisible par 400

Dim a As Integer

a = (Workbooks(1).Worksheets("feuil1").Range("A2").Value) (le probleme c'est qu'il ne va pas chercher la valeur a dans le bon classeur il va la chercher dans le classeur ouvert pas dans le fichier pluie)

b = a Mod 4

c = a Mod 100

If b = 0 And c <> 0 Then

MsgBox ("L'année est bissextile")

Else

MsgBox ("l'année est non bissextile")

End If

Close #1

End Sub

Bonjour,

Est-ce que le fichier PLUIE est ouvert avec celui dans lequel tu veux mettre la valeur en A2.

Cette macro se trouve dans le fichier PLUIE ou l'autre ?

A te lire

Dan

Re bonjour,

Merci tout d'abord de prendre du temps pour resoudre mon probleme

en fait le but de la macro que je tente de créer c'est d'aller chercher un fichier situé dans un dossier quelconque et de le lire

c'est l'utilisateur qui est censé aller chercher ce fichier

une fois ce fichier ouvert et lu aprés je veut calculer les moyennes des episodes pluvieux

je vous joint le fichier (que l'on est censé ouvrir grace au programme)

peut etre que ce sera plus compréhensible

https://www.excel-pratique.com/~files/doc/pluie.xls

merci beaucoup

cordialement

Salut le forum

Une facon de récupérer des valeurs dans un fichier fermé.

Sub LireCellule()

    GetValues "C:\Excel", "pluie.xls", "Feuil1", "A2", "A1"

End Sub
Sub GetValues(fPath As String, fName As String, sName, _
              cellRange As String, place As String)
  With ActiveSheet.Range(place)
    .FormulaArray = "='" & fPath & "\[" & fName & "]" & sName & "'!" & cellRange
    .Value = .Value
  End With
End Sub

Mytå

Re,

Dans ta macro remplace le code par celui-ci :

Sub max()
 Dim v() As Single, MOY As Single, titre As Single
 Dim pluie As String
 Dim N As Variant
 Dim a As Integer, b As Integer, c As Integer, i As Integer

pluie = Application.Dialogs(xlDialogOpen).Show

'Open pluie For Input As #1
' Input #1, titre
 For i = 1 To N
 Input #1, v(i)
 Next i
 ReDim v(N)
 'année bissextile si divisible par 400
Set ref = Workbooks(1).Worksheets("feuil1")
With ref
 .Range("A3") = Range("A2").Value
 .Range("A3") = a
End With
 b = a Mod 4
 c = a Mod 100
 If b = 0 And c <> 0 Then
 MsgBox ("L'année est bissextile")
 Else
 MsgBox ("l'année est non bissextile")
 End If
 Close #1
 End Sub

La macro est placée dans le fichier où tu fais l'analyse.

Lorsque la boite pour l'ouverture du fichier s'ouvre, pour le choix du fichier

Double clique pour l'ouverture.

J'ai laissé quelques codes de ta précédente macro pour le cas où tu voudrais les utiliser. Comme je travaille sous excel MAC, certaines instructions ne fonctionnent pas de la même manière.

Vérifie et dis moi

A te lire

Dan

PS : Salut Myta !!

Salut Mytå, salut Dan

En reprenant ta macro le fichier s'ouvre bien par contre le probleme est que si je fais un msgbox pour savoir quelle valeur de "a" est prise en compte, il me donne a = 0 au lieu de 1983 et je ne sais pas pourquoi..

(PS dans le fichier en piece jointe la cellule A2 ne contient plus que "1983" comme valeur

Merci encore pour tout

mantel

re,

c'est bon j'ai trouvé pourquoi l'année 2004 ne s'affichait pas

(en fait l'erreur était dans le workbooks)

au lieu de workbooks("1") il fallait écrire workbooks("pluie.xls")

cordialement

merci

Rechercher des sujets similaires à "lecture fichier vba"