Bonjour,
Je viens, demander vos conseils et votre aide pour la réalisation d'une macro.
Pour info, j'utilise Microsoft Excel 2010,
Mon problème se décompose en deux sous problèmes :
1/ Optimisation de code
Je récupère une colonne (B), j'aimerais supprimer les doublons sur cette colonne
Malheureusement, ce code est beaucoup trop long a l’exécution (comparer au bouton supprimer les doublons de l'onglet Données), quelqu'un aurait il une solution en vue de l'optimiser ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub supprimeDoublons() MaCellule = "B2" ' 'Récupère l 'adresse de la cellule dans une variable MaCellule Range(MaCellule).Select 'Sélectionne la cellule indiquée ActiveCell.CurrentRegion.Sort Key1:=Range(MaCellule), Order1:=xlAscending, Header:=xlYes 'Trie le tableau sur cette celule donnee1 = ActiveCell 'Mémorise le contenu de la cellule en cours et l'affecte à donnee1 ActiveCell.Offset(1, 0).Select 'Descend d 'une ligne While ActiveCell <> "" 'tant que la cellule n'est pas vide If ActiveCell = donnee1 Then 'vérifie si le contenu de la cellule en cours est égal à donnee1 ActiveCell.EntireRow.Delete 'si oui, supprime la ligne entière ActiveCell.Offset(-1, 0).Select 'remonte d 'une ligne donnee1 = ActiveCell 'mémorise à nouveau le contenu de la cellule ActiveCell.Offset(1, 0).Select 'descend d 'une ligne Else 'sinon donnee1 = ActiveCell 'mémorise le contenu de la cellule en cours de la ligne suivante et l'affecte à donnee1 ActiveCell.Offset(1, 0).Select 'descend d 'une ligne End If 'fin de la vérification Wend 'Fin de la boucle (on répète les instructions tant que la cellule en cours d'examen contient quelque chose). Sinon, le programme s'arrête End Sub
Une fois mes doublons supprimer, je réalise une copie du résultat dans une autre colonne (G).
Une fois mes doublons supprimer j'aimerais remplacer le caractère "/" par un "_", a l'heure actuelle j'utilise une formule excel du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub ListeAlarmes() Worksheets("Conversion").Activate 'Active l'onglet Conversion Range("B2").Select 'Selectionne la colonne B case 2 Worksheets("Conversion").Range("B2:B100").Copy 'Selectionne la plage de B2 à B65536 pour la copie ActiveSheet.Paste Destination:=Worksheets("Conversion").Range("G2:G100") 'Active le collage dans le classeur Conversion, plage G2 à G65536 End Sub
=SUBSTITUE(G2;"/";"_"), dans la colonne I, je met le résultat de la substitution.
Bien entendu, si je pouvais réaliser la suppression des doublons et le remplacement de caractère dans la même fonction cela serait beaucoup mieux.
2/ Création de fichier texte
Une fois ma colonne créer, (sans doublons et avec les caractères remplacer),
je souhaite créer autant de fichier texte qu'il y a de ligne rempli dans la colonne G , le contenu de ce fichier texte étant le contenu de la colonne J et le nom de ce fichier texte le contenu de la colonne G.
Si quelqu'un a des idées ou un exemple de code..?
Je reste ouvert a tout complément
Cordialement,
Partager