VBA ligne avec variable ?

Bonjour,

j'importe des plages de données depuis un fichier fermé dans "C:\XLS\ESSAI\"

Sub import()

Dim chemin As String, fichier As String

chemin = "C:\XLS\ESSAI\"

'Nom du fichier source
fichier = "MONFICHIER.xlsm"

ThisWorkbook.Names.Add "plage", _
RefersTo:="='" & chemin & "[" & fichier & "]variables'!$A$2:$B$400"

    With Sheets("donnees")

        .[A2:B400] = "=plage"

    End With

    End Sub

Mais le fichier de destination se rempli et donc la valeur B400 augmente.

J'ai récupéré ma valeur maxi de cellule qui est égale à B400

J'ai donc une variable VmaxB = B400 en ce moment

L'objectif est de remplacer ma ligne de code de façon à avoir la partie $B$400 qui soit remplacer par VmaxB

ici

ThisWorkbook.Names.Add "plage", _

RefersTo:="='" & chemin & "[" & fichier & "]variables'!$A$2:$B$400"

et ici

.[A2:B400] = "=plage"

Je n'arrive pas a intégrer ma variable ? est ce possible ? Merci d'avance

Bonsoir padawan,

c'est pas bien clair, alors juste une piste :

Option Explicit

Sub import()
  Dim chemin$, fichier$, VmaxB&: chemin = "C:\XLS\ESSAI\"
  fichier = "MONFICHIER.xlsm" 'Nom du fichier source
  VmaxB = Cells(Rows.Count, "B").End(xlUp).Row 'ou peut-être : VmaxB = [B400]
  ThisWorkbook.Names.Add "plage", _
    RefersTo:="='" & chemin & "[" & fichier & "]variables'!$A$2:$B$" & VmaxB
  Worksheets("donnees").Range("A2:B" & VmaxB) = "=plage"
End Sub

dhany

Bonsoir, sans faire de jeu de mot ...

Dhany tu es Brian !!!!

Merci beaucoup.

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne continuation !

dhany

Rechercher des sujets similaires à "vba ligne variable"