VBA : établir une boucle et copier-coller

NeedHelp - 21 juin 2023 à 19:18
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 22 juin 2023 à 16:44

Bonjour tout le monde, 

J'essaye de réaliser un programme en VBA pour un projet mais je butte un peu sur la programmation.

En effet, cherche à faire correspondre les cellules identiques en colonne A et les fusionner afin d'obtenir une cellule en colonne B avec plusieurs valeurs. 

Pour ce faire, j'ai essayé d'établir une boucle qui lise la date en colonne A et si la date de la ligne 1 correspond à la date de la ligne 2 alors les numéros correspondant à ces 2 lignes en colonne B fusionnent dans une seule cellule de la colonne B correspondant à la bonne date. 

Sinon, si les dates en colonnes A ne sont pas identiques alors j'aimerais que la date et le numéro s'affiche dans la ligne suivante et ainsi de suite. 

Pour être plus claire, je veux fusionner tous les numéros ayant la même date dans une seule et même cellule et ce pour chacune de mes valeurs. Je joins une image pour que vous vous fassiez une idée. 

J'espère avoir été claire et que vous pourrez m'aider à résoudre ce problème. 

Merci d'avance 

4 réponses

yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
21 juin 2023 à 19:26

bonjour,

peux-tu montrer ton code, en veillant à suivre ces conseils: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

0

Bonjour,

Pour le moment, ce n'est pas complet car je ne connais pas toutes les commandes d'instructions. Malgré des heures de recherches je n'arrive pas à trouver quelque chose me mettant sur la voie.

En espérant que j'ai bien suivi les conseils de votre lien.

Sub Mergecolumns()

Dim wk_Futurismo As Workbook
Dim ws_Sheet1 As Worksheet
Dim lstrw As Long
Dim C1 As Integer
Dim C2 As Integer

'Définir les variables'
Set wk_Futurismo = Workbook
Set ws_Sheet1 = Worksheet(1)

'Démarrer la boucle'
For i = 2 To lstrw

'Condition si An=An+1, alors'
If C1 = C2 Then

    'Coller N°ID à la suite du premier'
    
    
    Else
    
        'Lecture de la dernière ligne et coller à la suite'
        lstrw = ws_Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
        Past_line = lstrw + 1

        'Coller les valeurs sur la ligne suivante'
        ws_Sheet1.Cells(Past_line, 1) = ws_Sheet1.Cells(i, 1)
        ws_Sheet1.Cells(Past_line, 2) = ws_Sheet1.Cells(i, 2)
       

End Sub
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
22 juin 2023 à 10:18

Bonjour,

Fichier exemple avec votre image.

 https://www.cjoint.com/c/MFwislEw5Wg

Un dictionnaire pour liste sans doublon et recherche en fonction de cette liste

Pour les colonnes, z'etes sur d'ecrire le resultat dans les memes colonnes?

0

Bonjour, 

Merci beaucoup.

Oui, c'est ce qui m' été demandé même si je ne suis pas 100% sûr d'y arriver.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
22 juin 2023 à 16:44

Re,

Fichier avec ecriture colonnes AB

 https://www.cjoint.com/c/MFwoQra5l0g

Faut pas vous rater car vous n'aurez qu'un seul essai, les donnees d'origine AB n'existeront plus

0