Répéter le contenu d'une ligne

Résolu
Serocelot -  
 Serocelot -
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 !

6 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Serocelot
       
      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
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    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
    1. Serocelot
       
      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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Serocelot
       
      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
    2. Serocelot
       
      Malheureusement cela ne fonctionne toujours pas... J'ai vérifié, mes macros sont activées etc mais rien... Une solution ?
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Serocelot
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Serocelot
       
      Ca maaaarche c'est génial merci beaucoup !!
      0