Traitement de données - VBA

Bonjour à tous !

J'espère que vous allez bien en cette periode de confinement

J'aimerai créer une macro qui crée tout d'abord

- Crée 2 colonnes vers la gauche ou la 1er s'appellera "Série H" et la 2ème "Serie A" à partir du fichier joint.

Puis j'aimerais que la macro traite l'ensemble des lignes en partant de la fin ou j'aimerai qu'elle fasse les choses suivantes :

- Si à la ligne traitée dans la colonne E, si l'équipe est déjà apparu dans les lignes précédentes, alors tu repars de la ligne où elle apparu la dernière fois,

1- Si l'équipe était en E, tu prends le nombre de la colonne B et tu lui ajoutes 1 à la colonne B que l'on étudie

2- Si l'équipe était en F, tu prends le nombre de la colonne C et tu lui ajoutes 1 à la colonne B que l'on étudie

- Si à la ligne traitée dans la colonne F, si l'équipe est déjà apparue dans les lignes précédentes, alors tu repars de la ligne où elle apparu la dernière fois,

1- Si l'équipe était en E, tu prends le nombre de la colonne B et tu lui ajoutes 1 à la colonne C que l'on étudie

2- Si l'équipe était en F, tu prends le nombre de la colonne C et tu lui ajoutes 1 à la colonne C que l'on étudie

si elle n'est pas apparue avant, marquer 1(ce qui sera le cas à la fi de chaque feuille)

Je vous ai mis dans le ficher 3 pages avec un nombre de lignes différentes pour tester si la macro marchait dans chaque cas.

Je vous remercie par avance pour votre aide et prenez soin de vous !

Laplacea

13test-journee.xlsm (242.45 Ko)

Bonjour à tous,

Si vous avez des questions n'hésitez pas à me les poser

Je serai de vous répondre.

Je vous remercie d'avance pour votre aide.

Laplacea

Bonjour laplacea, le forum,

Pas sur d'avoir bien compris....

Regarde sur ta feuille exemple si c'est le résultat souhaité....

Sinon, choisis une ville et note le résultat dans les colonnes B et C

5test-journee-1.xlsm (271.28 Ko)

Cordialement,

Je pense que je suis pas le seul dans ce cas mais j'ai rien compris ^^

Peut-être que tu pourrais donner quel est le but final de ta macro et la signification des colonnes?

Bonjour !

Je vous remercie pour vos retours

Alors c'est presque ça sauf que j'ai étendu le NB.SI de la colonne E à la colonne F, vous pourrez le voir dans le fichier joint

L'idée est là mais j'aimerais bien pouvoir le faire sous forme de macro et qui aille jusqu'à la dernière ligne car j'aimerai dupliquer la macro sur différentes feuilles de calcul au même format mais avec des nombres de lignes qui différent entre elles.

Je vous remercie par avance et vous souhaite une bonne soirée !

Laplacea

12test-journee-1.xlsm (258.13 Ko)

Re,

Je n'ai toujours pas compris....mais bon, du moment que tu t'y retrouves,

A partir de tes formules et avec l'aide de l'enregistreur de macro.....

CTRL+e sur la feuille active pour exécuter la macro....

A tester....

Sub test()
 Dim derlig As Long

 Application.ScreenUpdating = False

  With ActiveSheet                                              'agit sur la feuille active
   If ActiveSheet.Name <> "Exemple" Then                        'si le nom de la feuille est différent de Exemple
           derlig = .Range("D" & Rows.Count).End(xlUp).Row      'dernière ligne utilisée de la colonne D

     Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove   'insert une colonne à gauche de la colonne B
     Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove   'insert une colonne à gauche de la colonne C

     .Range("B2") = "Série H": .Range("B2").Interior.ColorIndex = 6    'titre et couleur colonne B
     .Range("C2") = "Série A": .Range("C2").Interior.ColorIndex = 6    'titre et couleur colonne C

     .Range("B3").FormulaR1C1 = "=COUNTIF(R3C[3]:RC[4],RC[3])"  'ta formule en B3
      .Range("B3:B" & derlig).FillDown                              'on tire la formule jusqu'à la dernière ligne
     .Range("C3").FormulaR1C1 = "=COUNTIF(R3C[2]:RC[3],RC[3])"  'ta formule en C3
      .Range("C3:C" & derlig).FillDown                              'on tire la formule jusqu'à la dernière ligne
     Columns("B:C").HorizontalAlignment = xlCenter              'centrer horizontalement sur colonnes B et C
   End If                                                       'fin de la condition
  End With
End Sub

Cordialement,

Merci beaucoup ça marche super bien.

Je t'en suis vraiment reconnaissant

Prends soin de toi !

Laplacea

Rechercher des sujets similaires à "traitement donnees vba"