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
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
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
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