Passer une feuille de calcul en paramètre à une procédure

Résolu/Fermé
undefined42 - 4 oct. 2016 à 11:10
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 4 oct. 2016 à 16:39
Bonjour,

Dans le cadre de mon stage, il m'est demandé de coder une macro sur excel permettant de convertir du .csv au format .json.

Seulement je connais à la fois très peux excel et encore moins le vba..

Ma question est donc la suivante :

J'ai cette première procédure, servant à ouvrir le fichier à convertir :

Sub menu_et_recup_path()
Dim nom_fichier As String
nom_fichier = Application.GetOpenFilename

Workbooks.OpenText Filename:=nom_fichier, Origin:=xlWindows, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False
Call TestPlageUtilisee
End Sub

qui appelle la procédure suivante servant à me donner la plage de cellule de la feuille de calcul ouverte :

Sub TestPlageUtilisee()

Dim LaPlage As Range
'gère l'erreur de la feuille vide
On Error Resume Next
Set LaPlage = Plage(ActiveSheet)
If err.Number = 0 Then
MsgBox LaPlage.adress
End If
End Sub

Function Plage(Fe As Worksheet) As Range

With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With

End Function

Seulement je ne sais pas comment faire en sorte que ma procédure et fonction ci dessus prennent en compte la nouvelle feuille de calcul précédemment ouverte.

Si quelqu'un à des idées je vous remercie d'avance !
A voir également:

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2016 à 12:12
Bonjour,

Votre code marche tres bien (Address ald adress), comprends pas votre demande
0
Bonjour,

En effet mon code marche mais une fois le fichier et donc la nouvelle feuille ouverte, la procédure et fonction censé me retourner la plage ne fonctionne pas car je pense qu'elle travaille sur la mauvaise feuille, et je ne sais pas comment lui dire qu'il faut que la fonction effectue son traitement sur la nouvelle feuille ouverte par la première procédure.

je ne sais pas si je suis très clair, j'ai de base du mal à m'expliquer et encore plus sur un tout nouveau sujet qui m'est assez flou, sachant que je n'ai que un an de prog derrière moi..
0
Ok enfait je suis juste débile, à clôturer, merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2016 à 16:39
Re,

Si c'est vous qui le dites .............
0