VBA : copier coller cellule avec condition doubleclick et boucle

Résolu
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis débutant sur les macro, je souhaiterai faire un copier coller d'une cellule avec une condition après un doubleclick et répéter cela avec une boucle :

si la cellule à droite de ma target value est egal ma target value alors copier la target value et coller sur la cellule à droite de ma target value puis repeter cela pour toutes les cellules = à ma target value et à droite de cette target value


Voici l'idée mais je n'y connais pas grand chose :

Private sub_before doubleclick (targetvalue as range)

Dim i, j As Integer

Range(i & j).Value = Target.Value

For i = 1 To 20

If Range(i & j).Value = Range(i + 1 & j) Then

Range(i & j).Select
Selection.Copy
Range(i + 1 & j).Select
acivesheet.Paste

End If
Next i

End Sub


Voilà merci d'avevance à la personne qui pourrait m'aider.



5 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour,

Ce serait plutôt ceci :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i, j As Integer


i = Target.Row
j = Target.Column


For k = i To (i + 20)

If Cells(k, j).Value = Cells(k, j + 1).Value Then

Cells(k, j).Select
Selection.Copy
Cells(k, j + 1).Select
ActiveSheet.Paste

End If
Next k


End Sub

Mais je ne comprends pas l'intérêt de ta manip ! Si les 2 cellules sont égales on copie la 1ere dans la 2nde sinon on ne fait rien; donc dans tous les cas ça ne change rien aux données de départ !!!!!
Il y a quelque chose qui m'échappe !

Si tu peux éclairer ma lanterne
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
0
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé c'est la première fois que je pose une question sur ce site et je me suis trompé, j'ai donc resolu l'autre. encore désolé

Momo
0
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Hello,

merci bcp pour ton aide, en fait j'ai oublié de présicé que mes cellules qui se suivent peuvent être égales mais avec une couleur de remplissage qui diffère.

voici ce je veux faire :

range A1 = "momo" avec remplissage jaune par exemple + un commentaire
range B1 = "momo" sans remplissage + sans commentaire

dans ce cas je veux que ma case B1 soit égal a A1 d'ou ce cpoier coller (pour avoir exactement le même remplissage et le même commentaire que A1.

Merci d'avance
0
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Re, merci bcp, ça corresppond exactement à ce que je veux, j'ai juste inversé colonne et ligne (je m'étais mal exprimé), maintenant je trouve que le j+20 va scruter très loin (mon cas max = 20 et mon cas min = 2), en gros c'est une perte de pour mon cas min. Je souhaiterais que la boucle s'arrête dès que :

cells (i, k) et cells (i,k+1) sont différentes comme cela il n'y a pas besoin d'aller aussi loin.

Merci d'avance


----------------------------------------------------------------------------

pour info j'ai modifié colonne et ligne :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i, j As Integer


i = Target.Row
j = Target.Column


For k = j To (j + 20)

If Cells(i, k).Value = Cells(i, k + 1).Value Then

Cells(i, k).Select
Selection.Copy
Cells(i, k + 1).Select
ActiveSheet.Paste

End If
Next k


End Sub
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Il suffit de remplacer la ligne du If par celle là
If Cells(i, k).Value <> Cells(i, k + 1).Value Then Exit Sub Else

et de supprimer le End If
ça devrait être bon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
momofrai Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
C'est parfait, merci pour tout !

Bonne soirée.

Momo
0