• Initiateur de la discussion Initiateur de la discussion hicham28
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hicham28

XLDnaute Occasionnel
Bonjour, encore une autre fois je m'adresse a vous pour avoir votre aide, et je vous remercie d'avance.

j'ai un code qui a comme tache de copie les fonctions sur certains cellule, mais j’aimerai que la copie s'effectue que sur une seule linge, par exemple si je change la cellule A20 , j'aimerai que les cellules de la linge 20 seront changer.
Pour ce code que j’utilise, a chaque fois que je change par exemple la cellule A20 toutes les linges se changent a leurs tours.
J’aimerai que ma question est claire et aussi que j'aurai de votre aide. Merci
Voila le code

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fin As Long, i As Long
If Target.Cells.Count = 1 Then
    Fin = Cells(Rows.Count, 1).End(xlUp).Row
    If Not Application.Intersect(Target, Range("A1:A" & Fin)) Is Nothing Then
        For i = 18 To Fin
            If Range("AI" & i) = "-" Then
                Exit For
            Else
                If Range("A" & i).Value <> "" Then
                    Range("E3:ES3").Copy Range("E" & i)
                    Rows(i).RowHeight = 14
                End If
            End If
        Next i
    End If
End If
End Sub
 
Re : corrigez moi svp

Bonsoir Hicham 🙂,
j'ai un code qui a comme tache de copie les fonctions sur certains cellule, mais j’aimerai que la copie s'effectue que sur une seule linge, par exemple si je change la cellule A20 , j'aimerai que les cellules de la linge 20 seront changer.
Pour ce code que j’utilise, a chaque fois que je change par exemple la cellule A20 toutes les linges se changent a leurs tours.
Pas sûr d'avoir compris, mais tu peux essayer
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fin As Long, i As Long
If Target.Cells.Count = 1 Then
    Fin = Cells(Rows.Count, 1).End(xlUp).Row
    If Not Application.Intersect(Target, Range("A1:A" & Fin)) Is Nothing Then
       [COLOR=red][B]i = Target.Row[/B][/COLOR]
[COLOR=red][/COLOR]     If Range("AI" & i) = "-" Then
                Exit For
            Else
                If Range("A" & i).Value <> "" Then
                    Range("E3:ES3").Copy Range("E" & i)
                    Rows(i).RowHeight = 14
                End If
            End If
    End If
End If
End Sub
Bonne soirée 😎
 
Re : corrigez moi svp

Bonsoir hicham28, salut JNP,

JNP a fait ça un peu vite 🙂

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fin As Long, i As Long
If Target.Cells.Count = 1 Then
    Fin = Cells(Rows.Count, 1).End(xlUp).Row
    If Not Application.Intersect(Target, Range("A1:A" & Fin)) Is Nothing Then
        i = Target.Row
        If Range("AI" & i) = "-" Then Exit Sub
        If Range("A" & i).Value <> "" Then
            Range("E3:ES3").Copy Range("E" & i)
            Rows(i).RowHeight = 14
        End If
    End If
End If
End Sub

Si vous voulez modifier une seule ligne, il ne faut pas faire de boucle bien sûr.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
779
Réponses
5
Affichages
909
Réponses
9
Affichages
508
Réponses
2
Affichages
527
Réponses
4
Affichages
730
Retour