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

Ilino

XLDnaute Barbatruc
Bonsoir Forum ( bon début de semaine)
Je Souhaiterai élaborer un code de cette facon :
Chaque fois je saisie une donnée dans la cellule H328 , elle s’affiche dans la 1 cellule C330 et ainsi de suite
A+
 

Pièces jointes

  • Forum Affichage des données cllule vers cellule.xlsm
    11.6 KB · Affichages: 42

guigui971

XLDnaute Junior
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
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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:

Ilino

XLDnaute Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
312 638
Messages
2 090 391
Membres
104 517
dernier inscrit
NACHAV