Bonjour... Ou bonsoir... C'est selon,
Je vous explique mon problème...
A la base, j'ai un fichier Excel (Fichier nommé VILLE pour les besoins de cette demande)
Dans ce fichier VILLE, mes données sont toutes ou presque dans la colonne A
J'aimerai extraire une ligne parmi d'autres pour me créer ma base de données.
Dans un fichier que je peux joindre sur demande, j'ai coloré ces cellules en jaune pour que se soit plus parlant.
Voici une image :
De cette ligne, je voudrais que le Nom aille dans une colonne "Nom" dans un onglet ou fichier à part etc...
J'ai réussi plus ou moins à isoler les lignes avec une macro (je la colle en dessous)
mais la macro ne prend pas le tri par la colonne A pour regrouper toutes les lignes "écrites" et après je suis bloquée pour supprimer les lignes vides. Leur nombre & place sont aléatoires selon les produits commandé
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
32
33
34
35
36
37
38
39
40
41
42 Sub Macro3() ' ' Macro3 Macro ' ' Columns(""A:A"").Select Selection.TextToColumns Destination:=Range(""A1""), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _ ""-"", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True Cells.Select ActiveWorkbook.Worksheets(""Sheet3"").Sort.SortFields.Clear ActiveWorkbook.Worksheets(""Sheet3"").Sort.SortFields.Add Key:=Range(""A1:A260"") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(""Sheet3"").Sort .SetRange Range(""A1:J260"") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Columns(""B:E"").Select Selection.EntireColumn.Hidden = False Cells.Select Selection.EntireRow.Hidden = False Cells.Select ActiveWorkbook.Worksheets(""Sheet3"").Sort.SortFields.Clear ActiveWorkbook.Worksheets(""Sheet3"").Sort.SortFields.Add Key:=Range(""A1:A260"") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(""Sheet3"").Sort .SetRange Range(""A1:J260"") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Cells.EntireColumn.AutoFit Range(""A5"").Select End Sub
Avec ma méthode "macro3", il me reste à supprimer les lignes vides, séparer les noms & prénoms ainsi que CP & Ville, dédoublonner à partir des noms
Ce tableau, une fois renseigné, me servira de matrice pour modifier ma base de données actuelle sans avoir à faire les factures une par une & manuellement, encore une formule à élaborer mais j'ai bon espoir de la trouver (j'y travaille)
Quelqu'un peut il m'éclaircir sur la meilleure manière pour moi de continuer, j'arrive à bidouiller sur des données fixes mais là je ne sais pas comment automatiser des données variables. Si quelqu'un a une macro plus rapide que ce que j'ai fais et adaptée à mon cas, je suis preneuse ;-)
J'espère avoir été claire dans ma demande, je vous remercie d'avance pour toute l'aide que vous pourrez m'apporté. S'il y a le moindre souci dans le respect des règles du forum, veuillez m'en excuser. Je les ai lu mais n'est peut être pas tout assimiler. J'ai supprimé mon fichier joint pour éviter tout désagrément mais peux le communiquer sur simple demande.
Je suis assez novice avec les macros malgré tout j'arrive à bidouiller... je suis un peu plus à l'aise avec les formules
Je suis sous Windows 10 - Office 2013
A bientôt !
Partager