1 pièce(s) jointe(s)
Récupération et mise en forme de données sur onglets multiples et variables
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 :
Pièce jointe 197320
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)
Code:
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 |
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é
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 !