Traitement de données par macros...

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 !

jozerebel

XLDnaute Occasionnel
Bonjour à tous,

Après plusieurs essais, j'ai décidé de reprendre à partir de 0, car mon fichier a pa s mal buggé...

Voilà rapidement ce que je souhaite faire:
Faire une copie de cellules conditionnée
Supprimer des lignes sous conditions
Convertir des cellules au format date "jj/mm/aaaa"
Faire une extraction sans doublon sur une autre feuille.

le tout sur excel 2003 (je dis ça pour l'extraction, enfin je crois...🙂)

Je poste un fichier qui sera plus parlant.

Merci à tous pour votre aide précieuse.
 

Pièces jointes

Re : Traitement de données par macros...

RE:

Bonjour jozerebel,

N'ayant pas encore trouvé de démarche plus rapide pour la macro n°4, je me suis contenté d'y ajouter une boucle d'effacement des doublons (lignes bleues, la ligne rouge est à déplacer).

Code:
Sub Extract()
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = InputBox("Nom de la feuille : ", "Nouvelle Feuille", "A" & Sheets.Count + 1)
With Sheets("A")
  ld = 2
  For lg = 2 To .Range("A65536").End(xlUp).Row
    Set client = ActiveSheet.Range("A:A").Find(.Cells(lg, 1), LookIn:=xlValues, lookat:=xlWhole)
    Set debut = ActiveSheet.Range("B:B").Find(.Cells(lg, 10), LookIn:=xlValues, lookat:=xlWhole)
    Set fin = ActiveSheet.Range("C:C").Find(.Cells(lg, 11), LookIn:=xlValues, lookat:=xlWhole)
    If Not client Is Nothing And Not debut Is Nothing And Not fin Is Nothing Then GoTo Suite
      ActiveSheet.Cells(ld, 1) = .Cells(lg, 1)
      ActiveSheet.Cells(ld, 2) = .Cells(lg, 10)
      ActiveSheet.Cells(ld, 3) = .Cells(lg, 11)
    ld = ld + 1
Suite:
  Next
End With
[COLOR="Navy"][B]With ActiveSheet
  [COLOR="Red"].Range("B:C").NumberFormat = "dd/mm/yyyy"[/COLOR]
  For lg = .Range("A65536").End(xlUp).Row To 2 Step -1
    If .Cells(lg, 1) = .Cells(lg - 1, 1) And .Cells(lg, 2) = .Cells(lg - 1, 2) And _
    .Cells(lg, 3) = .Cells(lg - 1, 3) Then
      Rows(lg & ":" & lg).Delete
    End If
  Next
End With[/B][/COLOR]
End Sub

Ce n'est pas très élégant au niveau programmation, mais ça fonctionne.

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

Réponses
1
Affichages
1 K
J
Réponses
13
Affichages
1 K
jphflo
J
O
Réponses
0
Affichages
1 K
Olivier2049
O
J
Réponses
14
Affichages
3 K
J
H
Réponses
6
Affichages
1 K
Horusbk
H
S
Réponses
9
Affichages
2 K
S
M
Réponses
4
Affichages
3 K
marion0912
M
F
Réponses
8
Affichages
2 K
frusciantefan
F
T
Réponses
22
Affichages
6 K
Thibault LB
T
F
Réponses
8
Affichages
2 K
Fourchette
F
Retour