Répéter le contenu d'une ligne

Résolu/Fermé
Serocelot - 12 sept. 2016 à 12:38
 Serocelot - 12 sept. 2016 à 16:07
Bonjour à tous !

J'aurais besoin d'un petit coup de main.
Je souhaiterais répéter le contenu de toute une ligne en fonction de ce que je rentre dans ma première colonne.

Par ex, j'ai une liste de personnes.
Si je tape le nom d'une fille dans la colonne A et que ce nom existe déjà dans mon tableau, j'aimerais que les colonnes B et C reportent automatiquement les infos déja rentrées dans le tableau pour cette fille.

Voilàààà, j'espère être clair !
Merci pour votre aide !
A voir également:

6 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 12/09/2016 à 13:01
Bonjour,

Pour ma part, avant de répondre à côté de la plaque je voudrais comprendre et si possible voir ton fichier anonymisé
ou est ton tableau initial
et dans la cas d'absence d'un nom que se passe t il

1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse


A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Voilà !
http://www.cjoint.com/c/FImlSsjTRt5

Les colonnes A et B ne doivent pas être répétées, il faut que si je remets le même prénom en C, les colonnes D et E se complètent automatiquement avec les infos déjà rentrées avant !

Merci encore !
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
12 sept. 2016 à 13:10
Bonjour,


Code à placer dans la module de la feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Then
If Application.CountIf(Columns(1), Target) > 1 Then
Set C = Columns(1).Find(Target.Value, Range("A" & Rows.Count), xlValues, xlWhole)
If Not C Is Nothing Then
C.Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
End If
End If
End If
End Sub

A+
0
Merci beaucoup, mais malheureusement cela ne fonctionne pas, et je ne maitrise pas suffisamment les macros pour les "bidouiller" pour essayer de le faire fonctionner :/
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
12 sept. 2016 à 14:13
Re,

Pour faire ce que tu veux il faut passer par du VBA et d'après ton petit tableau il suffit simplement copier le code de Cyrus que je salue;
pour cela clic droit sur l'onglet de ta feuille/Visualiser le code et coller le code.

toutefois remplacer ou modifier cette ligne
C.Offset(, 1).Resize(, 2).Copy Target.Offset(, 1)
par
C.Offset(, 1).Resize(, 4).Copy Target.Offset(, 1)
0
Resize correspond au nombre de colonnes à reprendre ?
Pour savoir si jamais mon tableau s'agrandit ou si j'en ai besoin une autre fois ! :)
0
Malheureusement cela ne fonctionne toujours pas... J'ai vérifié, mes macros sont activées etc mais rien... Une solution ?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 12/09/2016 à 14:28
Re,

oui, c'est cela
C. est la ligne de balayage
C.Offset(, 1) ou C.Offset(0, 1) 1 est la première cellule à droite de la colonne de balayage
.Resize(, 4) ou .Resize(0, 4) jusqu' la 4éme cellule à droite de la colonne de balayage ou plus précisément jusqu'à la quatrième cellule à droite, autrement dit copie de la 1ére cellule de la valeur trouvée jusqu'à la 4éme cellule
C.Offset(0, 1).Resize(0, 4).Copy
et Target.Offset(, 1) ou Target.Offset(0, 1) en fait colle à partir de la 1ére cellule à droite de la cellule de saisie Target les données trouvées

https://www.cjoint.com/c/FImmCKuoP5j
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Même lorsque j'utilise le fichier que tu viens de poster cela ne fonctionne pas... Je ne comprends pas pourquoi la macro ne s'exécute pas ?

Un nouvel ex : http://www.cjoint.com/c/FImmQjNh3u5, avec en rouge les données à reprendre (si ça ne vous dérange pas bien sur !!!)
0

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

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 12/09/2016 à 14:51
Re,

quel est ta colonne critère qui est censée déclenchée le code, j'imagine la C es ce bien cela
tu saisis exemple Banane et tu veux copier les renseignements de D à J c'est cela

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
12 sept. 2016 à 15:33
Re,

je dois sortir, remplace ou colle ce code dans les propriétés de ta feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 3 Then
If Application.CountIf(Columns(3), Target) > 1 Then
Set C = Columns(3).Find(Target.Value, Range("C" & Rows.Count), xlValues, xlWhole)
If Not C Is Nothing Then
C.Offset(, 1).Resize(, 7).Copy Target.Offset(, 1)
End If
End If
End If
End Sub

0
Ca maaaarche c'est génial merci beaucoup !!
0