Comment déplacer une cellule d'après sa valeur

Bonjour,

Je débute en Excel VBA. Je cherche à résoudre le problème suivant par une macro

J'ai dans une feuille une colonne A numérotée de 1 à 100

Je voudrais que:

Quand la cellule active est positionnée par exemple en A10, je puisse déclencher une macro qui déplace cette cellule A10 vers son double (A20)

merci à vous pour votre aide

Bonjour,

Pas trop compris le but mais en utilisant 'l'évènement CHANGE de la feuille et la propriété Offset ça devrai pouvoir se faire. Mais il faut plus de renseignement, quant aux tenants et aboutissants...

Bonjour,

merci pour votre réponse.

Je vais essayer d'être plus clair

j'ai une feuille excel dont la colonne A est numérotée par exemple de 100 à 500

par exemple, si la cellule active est placée aléatoirement dans une colonne de la feuille (exemple d150)

je voudrais créer une macro qui fasse cette action:

- déplacer la cellule active sur la même ligne (150) vers la colonne A (150) (c'est à dire que la cellule active revienne sur la même ligne mais dans la colonne A)

- récupérer la valeur qui est inscrite dans la cellule A150 (dans mon cas 249)

- déplacer vers le bas cette cellule active A150 vers la cellule valant le double de sa valeur (dans mon cas A498)

Bon pour :

par exemple, si la cellule active est placée aléatoirement dans une colonne de la feuille (exemple d150)

Pour tester cela utilise le code ci-dessous qui doit être dans l'évènement Worksheet_SelectionChange de la feuille.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D:D")) Is Nothing Then
        ' // Ici code de sélection
        MsgBox "dedans"
        End If
End Sub

- déplacer la cellule active sur la même ligne (150) vers la colonne A (150) (c'est à dire que la cellule active revienne sur la même ligne mais dans la colonne A)

ActiveSheet.Range("A" & activcell.Row).Select

- récupérer la valeur qui est inscrite dans la cellule A150 (dans mon cas 249)

    Dim ReturnValue As Variant
    ReturnValue = ActiveCell.Value

ou

    Dim ReturnValue As Variant
    ReturnValue = ActiveSheet.Range("A" & activcell.Row).Value

- déplacer vers le bas cette cellule active A150 vers la cellule valant le double de sa valeur (dans mon cas A498)

quelque chose comme :

    If IsNumeric(ReturnValue) Then
        ReturnValue = ReturnValue * 2
        Dim RangeToSelect As Range
        RangeToSelect = Range("A:A").Find(what:=ReturnValue, LookIn:=xlValues, lookAt:=xlWhole)
        If Not RangeToSelect Is Nothing Then RangeToSelect.Select
    End If

nb: Pas testé...

Merci beaucoup

Rechercher des sujets similaires à "comment deplacer valeur"