Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3034 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro Excel de recherche + concaténation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro Excel de recherche + concaténation

n°1755422
GTTeamKill​er
エアリス
Posté le 04-07-2008 à 09:26:15  profilanswer
 

Bonjour,
 
j'ai un fichier excel qui comporte environ 3000 references ...
 
il se décompose grosso modo de la manière suivante: colonne A : n°ref, colonne B: libellé ....
 
Or, en colonne AK à AQ, dans les lignes qui suivent mes enregistrements de reférences, j'ai des infos à rattacher dans les lignes , mettons à la colonne AZ, en concaténant les colonnes AL à AQ dans la colonne AZ mais cette fois ci à la ligne correspondante à la référence ... AK étant le même numéro de référence que celui de la colonne A. Le probleme est que pour un même numéro de référence, je peux avoir de 0 à environ 10 remarques coller dans la même case de la colonne AZ ...
 
 
Concrètement de A1 à AJ2566 j'ai mes references, et de AK2567 à AQ3189 j'ai mes infos que j'aimerais rattacher ...
 
 
 
L'idée que j'avais est de faire une recherche de la valeur de la case A1 dans la colonne AK, puis si ca trouve quelquechose, ca me concatène la ligne correspondante dans la case AZ1, ca boucle tant que ca trouve une valeur égale à celle de A1 en prenant soin de me pas m'écraser ce qui a déjà été mi dedans dans la précédente boucle, puis ca passe à A2 et ainsi de suite ....
 
 
j'ai bien fait une pseudo macro mais elle ne marche pas et je suis complètement perdu apres tous les essais que j'ai fait:
 
Sub Macro1()
 
For i = 1 To 2600
Range("A" & i).Select
While Cells.Find(What:=ActiveCell.Value, After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False).Activate Is Not Null = True
        Cells("AZ" & i).FormulaR1C1 = "=CONCATENATE("" Type: "",RC[+1],"" Date: "",RC[+2],"" Heure: "",RC[+3],"" Sujet: "",RC[+4]),"" Remarques: "",RC[+5]"
        Wend
Next
             
End Sub
 
 
Merci pour l'aide la :cry:


Message édité par GTTeamKiller le 04-07-2008 à 09:26:36
mood
Publicité
Posté le 04-07-2008 à 09:26:15  profilanswer
 

n°1755491
babasss
Posté le 04-07-2008 à 11:02:01  profilanswer
 

Remarque ca, ce n'est pas ton besoin final mais si tu en comprends le fonctionnement, ca devrait t'aider...
 

Code :
  1. Sub Macro1()
  2. For i = 1 To Range("A1" ).End(xlDown).Row
  3.     With Worksheets(1).Range("AK:AK" )
  4.     Set c = .Find(Cells(i, 1).Value, LookIn:=xlValues)
  5.     If Not c Is Nothing Then
  6.         firstAddress = c.Address
  7.         Do
  8.             'c.Value = 5
  9.             MsgBox i & " : " & c.Row
  10.             Set c = .FindNext(c)
  11.         Loop While Not c Is Nothing And c.Address <> firstAddress
  12.     End If
  13.     End With
  14. Next
  15.            
  16. End Sub


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1755502
GTTeamKill​er
エアリス
Posté le 04-07-2008 à 11:18:31  profilanswer
 

je regarde ca avec attention, merci, cela dit vu mon niveau en VBA ca risque d'être un peu long pour que j'arrive à l'exploiter correctement ...

n°1755520
babasss
Posté le 04-07-2008 à 11:35:39  profilanswer
 

GTTeamKiller a écrit :

je regarde ca avec attention, merci, cela dit vu mon niveau en VBA ca risque d'être un peu long pour que j'arrive à l'exploiter correctement ...


J'ai pris soin de laisser un msgbox à l'endroit le plus important de la macro. Tu n'as plus qu'à l'enlever et à mettre ton code à la place...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1756188
GTTeamKill​er
エアリス
Posté le 07-07-2008 à 09:00:05  profilanswer
 

bon merci pour l'aide et désolé pour le retard de réponse, neuf ayant décidé de me faire sauter ma ligne adsl suite à un "probleme technique" de 3 semaines deja ...
 
En fait j'ai vu que je pouvais bien simplifier la macro en passant par plusieurs étapes avant de lancer le traitement de tri et du coup c est déjà moins compliqué ...
 
Merci pour l'exemple en tout cas, il m'a bien inspiré :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro Excel de recherche + concaténation

 

Sujets relatifs
Recherche personne dans l'oiserecherche aide
Recherche de caractère dans un nom de fichierAide pour une macro excel
Impossible de lire le code VBA d'un fichier Excel avec Excel 2007convetir fichier excel /html puis l'envoyer.tout cela en ligne de cmde
tri sur une chaine de caractère dans excelphp et fichier EXCEl
Mise a jour d'un macro a l'ouverture d'une feuille 
Plus de sujets relatifs à : Macro Excel de recherche + concaténation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR