ajout colonnes sous conditions

amirall

XLDnaute Nouveau
Bonjour à vous tous,

je me bloque sur une macro pour ajouter deux colonnes dans onglet "base" si je trouve que colone "field name" = "en tète" ma "Base".

Les noms des colonnes dans ma "base" peuvent changer de position ou de colonne et j'ai des colonnes masquées .

Merci pour votre aide.
 

Pièces jointes

  • Test vba .xlsm
    12.1 KB · Affichages: 8
Dernière édition:

amirall

XLDnaute Nouveau
Bonjour désolé je n'étais pas s clair.
Je veux chercher ces champs
1659183651849.png
dans la première ligne de [base]
1659183728572.png

et si je trouver le même nom alors j'ajoute deux colonnes dans l'onglet [base] juste après le nom trouvé.
 

Pièces jointes

  • Test vba (1).xlsm
    13.5 KB · Affichages: 2

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Amirall, bonjour le forum,

Ha voilà ! comme ça c'est clair...
Essaie avec ce code :

VB:
Sub ThauTheme()
Dim OF As Worksheet 'déclare la variable OF (Onglet Field name)
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim R As Range 'décalre la variable R (Recherche)

Set OF = Worksheets("field name") 'définit l'onglet OF
Set OB = Worksheets("base") 'définit l'onglet OB
DL = OF.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OF
For I = 2 To DL 'boucle des lignes 2 à DL
    'définit la recherche R (recherche dans la ligne 1 de l'onglet OB la valeur entière de la cellule de la boucle
    Set R = OB.Rows(1).Find(OF.Cells(I, 1).Value, , xlValues, xlWhole)
    If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
        OB.Columns(R.Column + 1).Insert 'insère une colonne avant la colonne de la première occurence trouvée plus une
        OB.Columns(R.Column + 1).Insert 'insère une colonne avant la colonne de la première occurence trouvée plus une
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub
 

amirall

XLDnaute Nouveau
Bonjour Amirall, bonjour le forum,

Ha voilà ! comme ça c'est clair...
Essaie avec ce code :

VB:
Sub ThauTheme()
Dim OF As Worksheet 'déclare la variable OF (Onglet Field name)
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim R As Range 'décalre la variable R (Recherche)

Set OF = Worksheets("field name") 'définit l'onglet OF
Set OB = Worksheets("base") 'définit l'onglet OB
DL = OF.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OF
For I = 2 To DL 'boucle des lignes 2 à DL
    'définit la recherche R (recherche dans la ligne 1 de l'onglet OB la valeur entière de la cellule de la boucle
    Set R = OB.Rows(1).Find(OF.Cells(I, 1).Value, , xlValues, xlWhole)
    If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
        OB.Columns(R.Column + 1).Insert 'insère une colonne avant la colonne de la première occurence trouvée plus une
        OB.Columns(R.Column + 1).Insert 'insère une colonne avant la colonne de la première occurence trouvée plus une
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub
Merci pour votre aide, le code marche correctement.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 316
Membres
103 176
dernier inscrit
jean.yvesjean.yves