Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

DUPRAZ

XLDnaute Nouveau
Bonjour Robert,

Tout d’abord un immense merci pour cette réponse tant efficace que rapide.
Ensuite, je suis d’accord sur le fait que mon énoncé était imbuvable ! Je suis désolé.

Très cordialement,
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…