XL 2016 Besoin d'une macro :création colonne+formule de test

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 !

bnolwalid

XLDnaute Junior
Bonjour tout le monde,
J'aurais besoin de votre aide pour créer une macro qui traite les données d'un fichier Excel.
Voici le besoin : à partir d'un tableau excel et à partir de la colonne D et après toutes les 2 colonnes:
- insérer une colonne
- la nommer Diff1/Diff2/Diff3... jusqu'a la fin des colonnes
- réaliser un test avec la fonction Si des 2 colonnes précédentes : dans la première colonne insérée (E) : si(C2=D2;"OK";NOK"), pour la deuxième colonne insérée qui devient la colonne H : si(F2=G2;"OK";NOK")...
- Contrainte : la dimension des données peut varier en terme de ligne et de colonne mais on réalise toujours le premier test aprés les deux colonnes Cet D et ce toutes les 2 colonnes (voir exp en PJ).

N'hésitez pas si ce n'est pas clair

Merci d'avance pour votre aide

Bonn journée
 

Pièces jointes

Bonjour.
VB:
Sub ColonnesDiff()
   Dim Rng As Range, C As Integer
   Set Rng = ActiveSheet.[A2].CurrentRegion
   C = 5
   Do
      If Rng(1, C).Value <> "Diff" & (C - 5) \ 3 + 1 Then
         Rng.Columns(C).Insert
         Rng(1, C).Value = "Diff" & (C - 5) \ 3 + 1
         Rng(2, C).Resize(Rng.Rows.Count - 1).FormulaR1C1 = "=IF(RC[-2]=RC[-1],""OK"",""NOK"")"
         End If
      C = C + 3: Loop Until C > Rng.Columns.Count + 1
   End Sub
 
Bonjour.
VB:
Sub ColonnesDiff()
   Dim Rng As Range, C As Integer
   Set Rng = ActiveSheet.[A2].CurrentRegion
   C = 5
   Do
      If Rng(1, C).Value <> "Diff" & (C - 5) \ 3 + 1 Then
         Rng.Columns(C).Insert
         Rng(1, C).Value = "Diff" & (C - 5) \ 3 + 1
         Rng(2, C).Resize(Rng.Rows.Count - 1).FormulaR1C1 = "=IF(RC[-2]=RC[-1],""OK"",""NOK"")"
         End If
      C = C + 3: Loop Until C > Rng.Columns.Count + 1
   End Sub
Bonjour Dranreb,

Tout d'abord je tiens à te remercier pour ta dispo et ta réactivité.
La macro marche à merveille sur le fichier que j'ai mis comme exemple mais malheureusement quand je l'applique sur un autre fichier ( voir PJ), j'ai ce message d'erreur :

[ATTACH type="full"]1163125[/ATTACH]

Pourrais-tu stp regarder car j'y comprends rien?
Merci encore une fois de ton aide
 

Pièces jointes

  • 1676041426341.png
    1676041426341.png
    20.3 KB · Affichages: 18
  • Testv2.xlsm
    Testv2.xlsm
    907.8 KB · Affichages: 3
J'ai pu le solutionner en mettant Rng.Columns(C).EntireColumn.Insert
au lieu de Rng.Columns(C).Insert
Mais je ne sais pas trop pourquoi ça plantait.
Hello Danreb,
La macro fonctionne très bien.
Merci infiniment pour ton coup de main.
Pourrais-je te demander un dernier service, est ce possible d'imposer une mise en forme différente aux colonnes Diff crées : par exemple les coloriées en jaune ?
Crdlmt
 
- 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

Retour