XL 2010 Suppression d'une cellule en double sur une même ligne

DUPRAZ

XLDnaute Nouveau
Bonjour à tous,
Je vous soumets mon problème qui vous paraitra certainement trivial mais je n'y arrive pas.
Voilà, j'ai un tableau avec 6 colonnes (Spe1/Spe2/Spe3/Spe_adandon/Spe_cons1/Spe_cons2), j'aimerai, sur chaque ligne comparer Spe1 avec Spe_abandon si égal on ecrit Spe2 en Spe_cons1 et Spe3 en Spe_cons2 sinon on compare spe2 avec spe_abandon de même si égale on ecrit Spe1 en Spe_cons1 et Spe3 en Spe_cons2 sinon on on ecrit Spe1 en Spe_cons1 et Spe2 en Spe_cons2. Je souhaite faire cela sur les 1000 lignes de mon tableau.
Vous trouverez en PJ un fichier qui illustre sur 4 lignes ce que je souhaite obtenir.
Merci d'avance à tous pour l'aide que vous pourrez m'apporter.
Très cordialement
 

Pièces jointes

  • Classeur2.xlsx
    8.6 KB · Affichages: 4
Solution
Bonjour Duparz, bonjour le forum,

Énoncé imbuvable !... Exemple qui ne provoque pas de changement!... Tu nous aides pas beaucoup.
Essaie ça :

VB:
Sub Macro1()
Dim O As Worksheet
Dim TV As Variant

Set O = Worksheets("Feuil1")
TV = O.Range("A1").CurrentRegion
For i = 2 To UBound(TV, 1)
    If TV(i, 1) = TV(i, 4) Then
        TV(i, 5) = TV(i, 2)
        TV(i, 6) = TV(i, 3)
    Else
        If TV(i, 2) = TV(i, 4) Then
            TV(i, 5) = TV(i, 1)
            TV(i, 6) = TV(i, 3)
        Else
            TV(i, 5) = TV(i, 1)
            TV(i, 6) = TV(i, 2)
        End If
    End If
Next i
O.Range("A1").Resize(UBound(TV, 1), UBound(TV, 2)).Value = TV
End Sub

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Duparz, bonjour le forum,

Énoncé imbuvable !... Exemple qui ne provoque pas de changement!... Tu nous aides pas beaucoup.
Essaie ça :

VB:
Sub Macro1()
Dim O As Worksheet
Dim TV As Variant

Set O = Worksheets("Feuil1")
TV = O.Range("A1").CurrentRegion
For i = 2 To UBound(TV, 1)
    If TV(i, 1) = TV(i, 4) Then
        TV(i, 5) = TV(i, 2)
        TV(i, 6) = TV(i, 3)
    Else
        If TV(i, 2) = TV(i, 4) Then
            TV(i, 5) = TV(i, 1)
            TV(i, 6) = TV(i, 3)
        Else
            TV(i, 5) = TV(i, 1)
            TV(i, 6) = TV(i, 2)
        End If
    End If
Next i
O.Range("A1").Resize(UBound(TV, 1), UBound(TV, 2)).Value = TV
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr