Bonjour,
pour qu'on puisse t'aider, il faut que l'on comprenne ce que tu veux faire.
On va découper ton problème en éléments simples.
Première ligne de code :
Range(TxtColumnName & "3") = Range(TxtColumnName & "3").Offset(0, 1)
Admettons que TxtColumnName vaille "C", alors ce qui est exécuté est :
Range("C3") = Range("D3")
Ce qui est l'équivalent de :
Range("C3") = Range("D3").Value
Même s'il y avait une formule dans D3, il y a maintenant une valeur dans C3.
Deuxième ligne :
Range(TxtColumnName & "3", Range(TxtColumnName & "3").Range(TxtColumnName & "3:" & TxtColumnName & IntNbLine)).FillDown
Admettons que TxTColumnName = "C" et IntNbLine = 10, alors ce qui est exécuté est :
Range("C3", Range("C3").Range("C3:C10")).FillDown
Ce qui est équivalent à :
Ce qui recopie la première cellule de la plage (C3 qui est la valeur de C4) dans le reste de la plage (jusqu'à E12).
... mais je ne fais que copier ma 3ème cellule.
Oui, c'est ce que tu fais, mais je n'ai pas compris ce que tu voulais faire.
Suggestion : tu peux utiliser Cells(Ligne, Colonne)
Par exemple :
Cells(3, Colonne) = Cells(3, Colonne + 1)
C'est souvent plus lisible.
Partager