1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2013 Insertion d'une colonne + Formule en fonction d'une colonne nommee

Discussion dans 'Forum Excel' démarrée par Calypso019, 10 Janvier 2019.

  1. Calypso019

    Calypso019 XLDnaute Nouveau

    Inscrit depuis le :
    10 Janvier 2019
    Messages :
    2
    "J'aime" reçus :
    0
    upload_2019-1-10_17-12-56.png Bonjour a tous,

    Clavier US donc je m'excuse par avance pour l'orthographe (pas d'accent)

    Je vous explique mon probleme
    Je souhaite inserer une colonne a la suite de la colonne nommee "Employee Type" et y inserer une formule.
    Ci-dessous le code VBA y resultant:

    upload_2019-1-10_17-12-56.png
    Pour pouvoir l'utiliser sur plusieurs fichiers, comment puis-je faire reference a la colonne nommee "Employee Type"? Le nom de la colonne ne changera pas mais la position de la colonne oui

    Pareil pour les cellules, j'aimerais faire appel a la position de la cellule et pas a Range(F1), Range(F2) et Range(F2:F3)

    J'ai joint le fichier test pour que ce soit plus parlant.

    Merci par avance pour votre aide.
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Insertion colonne Formule Forum Date
    Insertion de colonnes avec copie de la formule Forum Excel 25 Mars 2015
    Formule matricielle, insertion colonne et MFC Forum Excel 19 Octobre 2010
    Macro pour copie et insertion de ligne ou colonne en gardant uniquement les formules Forum Excel 2 Juillet 2010
    Insertion de colonne qui modifie ma formule Forum Excel 30 Décembre 2009
    Formule qui ne s'ajuste pas avec insertion de colonne Forum Excel 24 Février 2009

  3. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5150
    "J'aime" reçus :
    846
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonsoir @Calypso019,

    Voir le code ci-dessous :
    Code (Visual Basic):
    Sub Cleaning()
    Dim j&, n&
      For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
        If Cells(1, j) = "Employee Type" Then Exit For
      Next j
      If j <= Cells(1, Columns.Count).End(xlToLeft).Column Then
        j = j + 1
        Columns(j).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Cells(1, j) = "Employee Type bis"
        Cells(2, j).FormulaR1C1 = _
        "=IF(OR(RC[-1]=""Regular"",RC[1]=""IA"",AND(RC[-1]=""Fixed Term"",RC[-4]<>""Argentina"")),""FTC"",""Do not count"")"
        n = Cells(Rows.Count, "a").End(xlUp).Row
        If n > 2 Then Cells(2, j).AutoFill Destination:=Cells(2, j).Resize(n - 1), Type:=xlFillDefault
      End If
    End Sub
    nota: j'ai considéré que la ligne 1 contenait toujours les en-têtes du tableau. Si ce n'est pas le cas, il faudra modifier le code...
     
    Dernière édition: 11 Janvier 2019
  4. Calypso019

    Calypso019 XLDnaute Nouveau

    Inscrit depuis le :
    10 Janvier 2019
    Messages :
    2
    "J'aime" reçus :
    0
    Merci @mapomme, le code fonctionne comme il faut !

    Est-il possible dans la formule le RC[-4] par le nom d'une colonne egalement ? Car la colonne en question ne sera pas toujours en position -4 par rapport a la cellule ou se situe la formule.
    Cells(2, j).FormulaR1C1 = _
    "=IF(OR(RC[-1]=""Regular"",RC[1]=""IA"",AND(RC[-1]=""Fixed Term"",RC[-4]<>""Argentina"")),""FTC"",""Do not count"")"
     

Partager cette page