XL 2016 macro

clautu

XLDnaute Junior
bonjour,
Jai un probleme de macro

J'ai cette macro
Sub matiere()
'
n = 1
For Each c In Range("g2:r2")
If c.Value > " " Then

Range("f" & n).Value = c.Value
n = n + 1
End If
Next
End Sub
Elle fonctionne très bien
Ce que je voudrais c'est que quand je positionne mon curseur dans la cellule A2 cette macro fonctionne tel quel
mais quand je me positionne en A3 la ligne de ma macro deviendrait"For Each c In Range("g3:r3")"
quand je me positionne en A4 la ligne deviendrais For Each c In Range("g4:r4")
toujours comme cela jusqu'en A100
Est-ce possible

Merci!!!
 

Chris401

XLDnaute Accro
Bonjour
Essaye en plaçant ce code dans la feuille concernée
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:A100")) Is Nothing Then
    Range("F1:F100").ClearContents
        n = ActiveCell.Row
        Range("G" & n & ":R" & n).SpecialCells(xlCellTypeConstants, 23).Copy
        Range("F1").PasteSpecial xlPasteValues, Transpose:=True
End If
Application.CutCopyMode = False
End Sub
 

Iznogood1

XLDnaute Impliqué
Bonjour,

Il suffit de remplacer
For Each c In Range("g2:r2")​
par
For Each c In Range("g" & Selection.Row & ":r" & Selection.Row)

Code:
Sub matiere()
  n = 1
  For Each c In Range("g" & Selection.Row & ":r" & Selection.Row)
    If c.Value > " " Then
      Range("f" & n).Value = c.Value
      n = n + 1
    End If
  Next
End Sub
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
168
Réponses
7
Affichages
321

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87