Probleme vba

robertduval

XLDnaute Junior
bonjour nouveau sur le forum en esperant trouver de l aide je maniplule un peu vba, j ai acheter vba pour excel pour les nuls et vba pour office, ça ma bien aidé mais ils expliquent beaucoups avec des input box et msg box .
Voila je souhaite (voir fichier joint) que la zone jaune soit testé si b1=a une des cellules de la zone jaune alors ils suppriment et décallent sur la gauche les cellules egale a la zone verte sans toucher a la zone jaune le programme que j'ai creer me suppriment toute les cellules et les decallent sur la gauche. En plus court je souhaiterai que toutes les valeurs de la zone verte soit supprimer sur toutes les lignes dont le nombre est egale aux nombres de la zone jaune, j'espere avoir ete compris merci la macro que j ai creer est dans le vba
 

Pièces jointes

  • testmac2.xlsm
    17.6 KB · Affichages: 99

Gelinotte

XLDnaute Accro
Re : Probleme vba

Bonsoir,

Je ne comprends pas bien ta demande.
Ce code colore les cellules au lieu de les effacer pour plus facilement se reprendre au moment de tests.

Code:
Sub TrouvEffacCellul()
Dim cell As Variant
Dim plage As Range 'je declare plage qui est une selection
Dim X, Y As Integer

Set plage = ThisWorkbook.Worksheets("Feuil1").Range("b2:v22") 'plage est egale a la selection b2,v22 du classeur actuel, de la feuille1
On Error Resume Next
For X = 2 To Range("b1").End(xlToRight).Column
   For Each cell In plage 'pour tout les cellules de la plage
      For Y = 2 To 22
         If cell.Value = Cells(1, X).Value And cell.Value = Cells(Y, 1) Then cell.Interior.ColorIndex = 35     '.Delete Shift:=xlToLeft   'la cellule sera suprime et decale sur la gauche
'          If cell.Value = Cells(1, X).Value And cell.Value = Cells(Y, 1) Then cell.Delete Shift:=xlToLeft   'la cellule sera suprime et decale sur la gauche
      Next Y
   Next cell 'cellule suivante
Next X

End Sub

G
 

frangy

XLDnaute Occasionnel
Re : Probleme vba

Bonjour,

J’ai interprété ta demande différemment de ce qui a été compris par Gelinotte (que je salue), à savoir que seules sont concernées les lignes dont la cellule d’en-tête (jaune) contient une valeur identique à celle d’une cellule verte.
Code:
Sub TrouvEffacCellul()
Dim C As Range, D As Range, X As Range, Y As Range
Dim PlageJaune As Range, PlageVerte As Range
    Set PlageJaune = ThisWorkbook.Worksheets("Feuil1").Range("A2:A22")
    Set PlageVerte = ThisWorkbook.Worksheets("Feuil1").Range("A1:K1")
    On Error Resume Next
    For Each X In PlageVerte
        Set C = PlageJaune.Find(X, LookIn:=xlValues)
        If Not C Is Nothing Then
            For Each Y In PlageVerte
                Set D = C.EntireRow.Find(Y, LookIn:=xlValues, lookat:=xlWhole)
                If D.Column > 1 And Not D Is Nothing Then D.Delete Shift:=xlToLeft
            Next Y
        End If
    Next X
    Set PlageJaune = Nothing: Set PlageVerte = Nothing: Set X = Nothing: Set Y = Nothing
End Sub
A+
 

robertduval

XLDnaute Junior
Re : Probleme vba

Meeeerrrrcccciiiiii depuis le temps que je cherche merci beaucoup a vous deux Gelinotte et frangy vous m'avez aidé tous les 2 car j'ai une macro qui colore les cellules et quand je vois le code de Gelinotte je vois encore le chemin a parcourir pour arriver a votre niveau moi elle tient sur 30 lignes et bien sur frangie qui a trouvé exactement ce que je voulais, encore un grand merci bon weekend a vous deux
 

Discussions similaires

Réponses
2
Affichages
231
Réponses
2
Affichages
491
Réponses
2
Affichages
158

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 756
Messages
2 091 734
Membres
105 060
dernier inscrit
DEDJAN Gaston