• Initiateur de la discussion Initiateur de la discussion jlmarin
  • Date de début Date de début

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 !

J

jlmarin

Guest
Bonjour,
Je vous remercie d’avance pour votre aide. Voici mon problème, j’ai un fichier qui est assez long de plus ou moins 6 colonnes et 65 mille lignes, j’ai représenté ci-dessous un schéma de mon tableau pour illustrer mon problème.
Dans la colonne D il y a l’identifiant et dans la colonne E les informations correspondantes à l’identifiant (de la même ligne). Dans certaines lignes les informations rentrent entièrement dans la colonne D (exemple identifiant 134 et 135), par contre dans d’autres (identifiants 138-139) les informations débordent sur les lignes du dessous colonne A et parfois il y a aussi des cellules vides entre elles. Ce que je souhaite, c’est savoir comment je peux rassembler l’ensemble des informations d’un identifiant dans une seule colonne (la colonne E) et une seule cellule et une meme ligne, c’est le cas de l’identifiant 134. Je souhaite que ça s’applique à l’ensemble des identifiants.

Merci encore
 

Pièces jointes

  • macro.jpg
    macro.jpg
    7.5 KB · Affichages: 55
  • macro.jpg
    macro.jpg
    7.5 KB · Affichages: 54
  • macro.jpg
    macro.jpg
    7.5 KB · Affichages: 55
  • Macro.xls
    Macro.xls
    21 KB · Affichages: 61
  • Macro.xls
    Macro.xls
    21 KB · Affichages: 62
  • Macro.xls
    Macro.xls
    21 KB · Affichages: 60
Dernière modification par un modérateur:
Re : Macro Excel

Bonjour JLMarin et bienvenue, bonjour Jean-Marie 🙂,
Pas vraiment clair, et ton JPEG est tellement petit qu'on y voie rien 😱.
Une première proposition si j'ai compris le problème :
Code:
Sub test()
Dim Cellule As Range
For Each Cellule In Range("E1:E" & Range("E65000").End(xlUp).Row)
Cellule = Replace(Cellule, Chr(10), " ")
Next
End Sub
A + 😎
 
Re : Macro Excel

Bonjour, Je pense effectivement que j’aurais pu être plus clair. La lecture de mon fichier Excel attaché doit se faire par la colonne D, que j’appelle « identifiants » je n’ai pas mis les étiquettes avec les noms :-(
Donc, ont doit lire la colonne D et chercher que est la cellule vide… on trouvera donc D4 qui corresponds a l’identifiant 136 (juste au-dessous), ca veut dire qu’il avait tellement d’information dans l’identifiant 136 qu’il a débordé sur d’autres lignes, et ce pour cela qu’il y a l’écart entre 136-137 par exemple.
Dans ce cas la, il faut donc aller chercher les informations entre les lignes de l’identifiant en question (136) et le prochain identifiant (137), donc lignes 4-5-6 dans la colonne A et les concaténer avec la cellule à cote de l’identifiant en question (136) dans la colonne E (E3).
En tous cas, même si je n’arrive pas à faire ce que je veux ici, c’est très gentil à vous passer du temps pour aider les autres….

Merci
 
Re : Macro Excel

Re 🙂,
C'est sûr que les explications claires amènent des réponses justes 🙄...
Essaie
Code:
Sub Test()
Dim I As Long
For I = 1 To Range("A65536").End(xlUp).Row
If Cells(I + 1, 4) = "" And Cells(I + 1, 1) <> "" Then
Cells(I, 5) = Cells(I, 5) & " " & Cells(I + 1, 1)
Rows(I + 1).Delete Shift:=xlUp
I = I - 1
End If
Next I
End Sub
Bon WE 😎
 
Re : Macro Excel

Re 🙂,
Ou, après réflexion, si ta première ligne qui m'a embarqué dans une mauvaise direction au début représente ce que tu souhaites comme résultat 😛
Code:
Sub Test()
Dim I As Long
For I = 1 To Range("A65536").End(xlUp).Row
If Cells(I + 1, 4) = "" And Cells(I + 1, 1) <> "" Then
Cells(I, 5) = Cells(I, 5) [COLOR=red][B]& vbCrLf &[/B][/COLOR] Cells(I + 1, 1)
Rows(I + 1).Delete Shift:=xlUp
I = I - 1
End If
Next I
End Sub
Bon WE 😎
 
Re : Macro Excel

Bonjour Jean-Marie et Mécano41,
Merci beaucoup vos réponses correspondent à ce que je cherchais.. En plus j’ai cherchais depuis quelques jours :-(
La rapidité dont vous avez fait preuve pour coder mon problème m’a encouragé à faire une petite formation VBA, je me débrouille dans Excel mais dès qu’il s’agit de VBA je rame…En tout cas bravo, et encore merci pour votre aide….Et bon week-end.
 
Re : Macro Excel

Re 🙂,
Euh JNP, ton RegExp a dérapé ? 😛
Car Jean-Marie n'est pas Stapple
Mais Staple est bien Jean-Marie.
L'association Prénom/Pseudo n'est pas réflexive 😛 ?
Et non, tu as raison, car si Staple est forcément Jean-Marie, Jean-Marie, lui, n'est pas forcément Staple 😀.
Mais dans notre cas précis, en dehors de l'auteur du post, il n'y a que toi, moi et Mécano41 en ligne. Quand bien même Mécano41 s'appellerais Jean-Marie, notre ami aurait bégayé 😱...
Donc finalement, je te propose "\b((Jean-Marie|Staple)|(JNP|Jean-Noël)|(Mécano41)\b" qui doit renvoyer 3 en .Count 🙂 !
Désolé pour Mécano, je ne connais pas son prénom 😱.
Bon WE 😎
PS : JLMarin, ne t'inquiète pas de notre délire, ou munis-toi d'une boîte d'aspro et va faire un tour ICI.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
22
Affichages
1 K
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
750
Retour