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

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

  • Exemple1.xlsx
    11.2 KB · Affichages: 55
  • Exemple1.xlsx
    11.2 KB · Affichages: 59
  • Exemple1.xlsx
    11.2 KB · Affichages: 63

bond

XLDnaute Occasionnel
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...
 

Thoniau

XLDnaute Nouveau
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 ;) !
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia