HommeLibreXXIII > quelle est la différence entre Rien et Nothing ?
Réponse: 3 fois rien
On en déduit Rien = Nothing/3 donc Nothing c moins que rien...
Si je reprends ton code avec les points bizzares.
Code:
Sub Commande0_Click()
Dim l As Long
l = Ligne() ' Tu met le résultat dans l puis tu utilise i qui n'est pas utilisé ici ?
DoCmd.TransferSpreadsheet acImport, , CA, "D:\Eric\dossier_projets\TDB\Chiffres-Affaires\a-Activité paiement porteurs CA an2007.xls", 0, "K" & i
End Sub
Public Function Ligne() As Long
Dim AppExcel As Excel.Application
Dim wbFile As Excel.Workbook
Dim i As Long
Set AppExcel = CreateObject("Excel.Application" ) ' Ouverture d'excel
If Not AppExcel Is Nothing Then
Set wbFile = AppExcel.Workbooks.Open("c:\toto.xls", False, True) 'Ouverture du classeur désiré
If Not wbFile Is Nothing Then
Do While Cells(i, 1).Text <> "TOTAL"
i = i + 1
Loop
wbFile.Close
AppExcel.Application.Quit
Set AppExcel = Nothing
Set wbfile = Nothing ' Rien+Rien+Rien
End If
End If
'C'est une fonction qui doit renvoyer une donnée
Ligne = i
End Function
Ca y est j'ai compris ou tu te trompes, En fait il faut comprendre ou existe tes variables et ou elle ne sont plus, Dans des fonctions ou sub les variables que tu créé existe seulement le temps de l'execution de ta fonction, donc il ne sert à rien de mettre des public ou private, on déclare simplement avec Dim.
Le i contenu dans ta fonction est interne et invisible de l'exterieur de cette fonction c'est pour cela que tu créé une fonction renvoyant une valeur, afin que le résultat ne soit pas "perdu".
Si dans la fenetre d'execution tu tapes ?Ligne et tu valide ca t'affichera le résultat de ton execution.
C'est pour cela qu'il te faut une variable l qui récupère le résultat de ta fonction et après tu dois l'utiliser comme variable pour trouver ta ligne car i n'existe plus.
Enfin j'espère que c'est pas du chinois.