Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Afficher une donnée d'une cellule a l'autre ( Code VBA)
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 !
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
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)
Salut Guigui971
Merci ( Grazie) pas encore mais encore et en plus comment faire incrémenter le remplissage des cellules horizontalement (c a d dans l'ordre)
Grazie
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
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
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
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
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
- 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