Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ajout d'une ligne dans onglet 1 = ajout colonne dans onglet 2

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

Thoniau

XLDnaute Nouveau
Bonjour à tous,

Je fais actuellement face à un petit problème (qui doit certainement être tout bête), mais cela fait quelques temps que je cherche comment faire sans y arriver!

Je m'explique :
J'ai un premier onglet de mon classeur qui répertorie des noms, groupés par pays différents, en ligne.
Mon 2ème onglet reprend ces noms, toujours classés par pays, cette fois ci en colonne.

Mon problème est le suivant : est-il possible, lorsqu'on ajoute un nom dans le premier onglet, de créer automatiquement dans le second onglet, une colonne au même endroit? Je ne sais pas si c'est réalisable mais bon!

C'est un peu compliqué à expliquer, mais je mets en pièce jointe un bête exemple de configuration...
Dans cet exemple, ce que j'aimerais arriver à faire est que si je rajoute une ligne "Dominique" en France dans l'onglet 1, alors une colonne sera créée juste après Paul dans l'onglet 2 pour Dominique.

Je sais que je pourrais le faire manuellement, dans le cadre d'une base de données, il serait pratique de pouvoir automatiser tout ça 😉

J'espère d'avance que quelqu'un pourra m'aider 🙂 Merci!!

Bonne journée à tous!!
 

Pièces jointes

Re : Ajout d'une ligne dans onglet 1 = ajout colonne dans onglet 2

Place ce code dans Thisworkbook
Code:
Option Explicit
Public NbNomIni As Long

Private Sub Workbook_Open()
    NbNomIni = WorksheetFunction.CountA(Sheets("Onglet 1").Columns(2))
End Sub

Place ce code dans Feuil1(Onglet 1)
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
    If WorksheetFunction.CountA(Sheets("Onglet 1").Columns(2)) > ThisWorkbook.NbNomIni Then
        'Repérage suivant
        Dim NomSuiv As String
        NomSuiv = Target.Offset(1, 0).Value
        Sheets("Onglet 2").Select
        ActiveSheet.Rows(1).Select
        Selection.Find(What:=NomSuiv, After:=ActiveCell, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
    'Insertion col
        ActiveCell.EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        ActiveCell.Value = Target.Value
        ThisWorkbook.NbNomIni = ThisWorkbook.NbNomIni + 1
    End If
End If
Sheets("Onglet 1").Select
End Sub

Enregistre le fichier, Ferme le, Réouvre le

A te lire...
 
Re : Ajout d'une ligne dans onglet 1 = ajout colonne dans onglet 2

Ça marche impeccablement bien, c'est magique!

En revanche pour pousser la chose un peu plus loin, ne serait-il pas possible, une fois cette nouvelle colonne créée, que le nom apparu dans l'onglet 2 soit mis en relation avec le nom dans l'onglet 1 pour que quand on le change dans le 1, il change aussi dans le 2?

Sinon merci encore pour ce code redoutable 😉 !
 
Re : Ajout d'une ligne dans onglet 1 = ajout colonne dans onglet 2

Remplace la ligne de code :
Code:
ActiveCell.Value = Target.Value
Par :
Code:
ActiveCell.FormulaR1C1 = "='Onglet 1'!R" & Target.Row & "C" & Target.Column
 
- 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

Réponses
1
Affichages
143
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…