Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 10h00   #1
Invité de passage
 
Homme Michaël
Étudiant
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
Par défaut Macro pour fusionner des ligne en gardant la valeur supérieure

Bonjour,

Je suis actuellement dans une entreprise de vente par correspondance.

Je souhaite faciliter l'utilisation d'un tableau à partir d'une macro.
Celle-ci s'avère difficile à créer. Je m'explique :

Sur ce tableau est mis à jour quotidiennement. on y injecte des données tous les jours. il y'a 7 colonnes, les trois premières étant la référence de l'article, sa désignation et sa date de première rupture.

Voilà la macro que je souhaiterai créer :

Si les 3 premières colonnes sont identiques alors il faut les fusionner pour ne faire qu'une même ligne. Pour les 4 autres colonnes restantes (colonne 4, 5, 6, 7) il ne faut garder que les valeurs de la ligne où la valeur de la colonne 4 est la plus forte.

Pour résumer en gros, on a plusieurs lignes sur un tableau, si dans ces lignes la colonne 1, 2 et 3 sont identique il ne faut garder que la ligne ou la valeur de la colonne 4 est la plus forte et supprimer les autres.

Je vous joins le document pour plus de visibilité.

En vous remerciant et vous souhaitant un bon week-end!

Michaël
michaeldms est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 10h33   #2
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 488
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 488
Points : 6 549
Points : 6 549
Bonjour,

Teste ceci :
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
Sub test()
Dim i As Long, j As Long, x As String
 
Application.ScreenUpdating = False
 
With Sheets(1) '<-- nom ou position de la feuille à adapter
    For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        x = .Cells(i, 1) & .Cells(i, 2) & .Cells(i, 3)
        For j = i - 1 To 1 Step -1
            If .Cells(j, 1) & .Cells(j, 2) & .Cells(j, 3) = x Then
                If .Cells(j, 4) < .Cells(i, 4) Then
                    .Rows(j).Delete
                Else
                    .Rows(i).Delete
                    Exit For
                End If
            End If
        Next j
    Next i
End With
 
Application.ScreenUpdating = True
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 10h40   #3
Invité de passage
 
Homme Michaël
Étudiant
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
c'est parfait ça marche! merci beaucoup pour votre aide

Bonjour,

En fait en m'en servant je me suis rendu compte que ça ne marchait pas car ça supprimer des lignes qui ne devaient pas être supprimer?
Je n'arrive pas à résoudre ce problème. comment faire?

Merci
michaeldms est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 13h15   #4
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 488
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 488
Points : 6 549
Points : 6 549
Si ce ne sont pas des données confidentielles, envoie un petit bout de fichier avec ces lignes qui posent problème
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h02.


 
 
 
 
Partenaires

Hébergement Web