Afficher une donnée d'une cellule a l'autre ( Code VBA)

  • Initiateur de la discussion Initiateur de la discussion Ilino
  • 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 !

Re : Afficher une donnée d'une cellule a l'autre ( Code VBA)

Salut,

As tu essayé en utilisant :
WorkSheet_Change(ByVal Sh As Object, ByVal Target As Range)
marche dès qu'on crée, modifie ou efface le contenu d'une cellule.

Ainsi tu activerais la macro qui recopie ton truc dans l'autre cellule voulue
 
Re : Afficher une donnée d'une cellule a l'autre ( Code VBA)

Bonjour Ilino,

Un exemple parmi d'autres :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
  For Each c In Range(c, Cells(c.Row, Columns.Count))
    If IsEmpty(c) Then c = s: Exit Sub
  Next
End If
End Sub
A+
 
Re : Afficher une donnée d'une cellule a l'autre ( Code VBA)

Re,

Si l'on ne veut pas qu'une valeur soit copiée plusieurs fois :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
  For Each c In Range(c, Cells(c.Row, Columns.Count))
    If CStr(c) = CStr(s) Then Exit Sub
    If IsEmpty(c) Then c = s: Exit Sub
  Next
End If
End Sub
A+
 
Re : Afficher une donnée d'une cellule a l'autre ( Code VBA)

Re,

Une solution sans boucle :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
  If Application.CountIf(Range(c, Cells(c.Row, Columns.Count)), s) Then Exit Sub
  If IsEmpty(c) Then c = s: Exit Sub
  If IsEmpty(c(1, 2)) Then c(1, 2) = s: Exit Sub
  c.End(xlToRight)(1, 2) = s
End If
End Sub
A+
 
Re : Afficher une donnée d'une cellule a l'autre ( Code VBA)

Re,

Allez pour faire bon poids une solution avec la méthode Find :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
  With Range(c, Cells(c.Row, Columns.Count))
    If .Find(s, , xlValues, xlWhole) Is Nothing Then .Find("", .Cells(.Columns.Count)) = s
  End With
End If
End Sub
A+
 
Dernière édition:
Re : Afficher une donnée d'une cellule a l'autre ( Code VBA) (Résolut)

Re,

Allez pour faire bon poids une solution avec la méthode Find :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, c As Range
Set s = [H328]: Set c = [C330] 'à adapter
If Not Intersect(Target, s) Is Nothing Then
  With Range(c, Cells(c.Row, Columns.Count))
    If .Find(s, , xlValues, xlWhole) Is Nothing Then .Find("", .Cells(.Columns.Count)) = s
  End With
End If
End Sub
A+

Re,
Merci JOB pour la réponse plutôt les réponses , c'est exactement ce que j'ai cherché.
GRAZIE
 
Dernière édition:
- 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

Retour