Incrément Row offset

Résolu/Fermé
Freeman_ Messages postés 3 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015 - Modifié par pijaku le 20/01/2015 à 11:48
Freeman_ Messages postés 3 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015 - 20 janv. 2015 à 11:47
Bonjour à tous,

Je suis un nouveau né en ce qui concerne le VBA. Veuillez m'excusez si cette question a déjà été posée sur ce forum :

Je souhaiterai incrémenter la valeur de row qui se trouve dans offset en fonction d'une variable.

Existe-il un moyen de le transformer en variable ?


Private Sub Worksheet_Change(ByVal Target As Range)
    

    If Not Intersect(Target, [A1:B1]) Is Nothing Then
        Application.EnableEvents = False
        Range("C1").Offset(Target.Row - 1, Target.Column - 1) = Target.Value
        Application.EnableEvents = True
    End If

End Sub



Merci d'avance.

Que la Paix soit sur vous.

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
19 janv. 2015 à 17:41
Bonjour,

a supposer que c'est ce que vous voulez!!
a=2
b=5
Range("C1").Offset(Target.Row - a, Target.Column - b) = Target.Value 
1
Freeman_ Messages postés 3 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015
Modifié par Freeman_ le 19/01/2015 à 19:48
Merci f894009 ! Que Dieu vous bénisse. Cela marche parfaitement.


Si je puis me permettre est il possible de créer une plage variable dans la méthode Intersect ?

En effet, je souhaiterais faire varier [A1:B1] comme cela par exemple "Cells(n,1) Cells(n,2)". Mais je n'arrive pas à trouver la bonne syntaxe. Est ce que Intersect peut intégrer d'autres arguments que des plages fixes ?

Paix.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim a As Integer
Dim b As Integer

a = 2
b = 5

If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[Feuil1!E5].Offset(Target.Row - a, Target.Column - b) = Target.Value
Application.EnableEvents = True
End If
End Sub
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Freeman_ Messages postés 3 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015
20 janv. 2015 à 06:41
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)

Dim a As Integer
Dim b As Integer

a = 2
b = 5
n1 = 2
n2 = 4

    If Not Intersect(Target, Range("A" & n1 & ":B" & n2)) Is Nothing Then
        Application.EnableEvents = False
        [Feuil1!E5].Offset(Target.Row - a, Target.Column - b) = Target.Value
        Application.EnableEvents = True
    End If
End Sub
0
Freeman_ Messages postés 3 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
20 janv. 2015 à 11:47
Ça marche ! Merci beaucoup f894009 !
0