J'aimerai savoir si il est possible de, lorsque je met une valeur dans une cellules spécifiques (ex NY38),effacer toutes les cellules ayant la même valeur que celle rentrer dans la cellule NY38 ?
Pour toutes les feuilles du classeur
Pour toutes les colonnes de la feuille
Pour toutes les lignes de la feuille
Si valeurCelluleSélectionnée = valeurTest Alors valeurCelluleSélectionnée = ""
Ligne suivante
Colonne suivante
Feuille suivante
Sans plus de précisions ni fichier joint, je m'arrêterai là.
Pour toutes les feuilles du classeur
Pour toutes les colonnes de la feuille
Pour toutes les lignes de la feuille
Si valeurCelluleSélectionnée = valeurTest Alors valeurCelluleSélectionnée = ""
Ligne suivante
Colonne suivante
Feuille suivante
Sans plus de précisions ni fichier joint, je m'arrêterai là.
En fait j'ai un tableau avec un planning de production avec différentes opération se faisant au fil des semaines.
Et j'aimerais en fait que lorsque je met un certain numéro de commande (ex: Fraisage19) dans la ligne désigné au contrôle de la pièce toute les autres cellules contenant Fraisage19 soit effacer pour signifier que la pièce est bien fini.
Bonjour, je vous joint un exemple de tableau semblable au mien en bien plus petit.
En gros il faudrait, si possible, trouver un moyen pour que lorsque je met une valeur dans la ligne "contrôle" peu importe la colonne toute les cellules qui ont la même valeur soit effacer.
J'avais essayé quelque chose de ce type là:
Sub ClearContentsIfContains()
Dim cell, rng As Range
Set rng = Range("A6:TA37")
For Each cell In rng
If cell.Value = ("NY38") Then
cell.ClearContents
Else
End If
Next cell
Sub ClearContentsIfContains()
Dim cell, rng As Range
Set rng = Range("A6:TA37")
For Each cell In rng
If cell.Value = Range("NY38") Then
cell.ClearContents
End If
Next cell
End Sub
Sub ClearContentsIfContains()
Dim cell, rng As Range
Set rng = Range("A6:TA37")
For Each cell In rng
If cell.Value = Range("NY38") Then
cell.ClearContents
End If
Next cell
End Sub
Re,
Je vous remercie ca à bien marché, au début ca ne marchais pas car j'avais apporté des modifications dans mon tableau et ce n'était donc plus NY38 mais NY34.
J'abuses peut être un peu mais serait possible de faire ca pour toute la ligne 38 ?
Que ca change que je mette dans NY38 ou bien NL38.
Un peu usine à gaz à mon avis mais fonctionne (je me suis arrêté à NY) :
VB:
Sub ClearContentsIfContains()
Dim cell, rng As Range
Set rng = Range("A6:TA37")
Set rConditions = Range("A38:NY38")
For Each cell In rng
For Each val in rConditions
If cell.Value = val.Value Then
cell.ClearContents
End If
Next val
Next cell
End Sub
Sinon, pour effectuer ce genre d'opération plus rapidement, j'aurais tendance à passer par un Array VBA, qui est un objet plus rapide pour boucler/changer des valeurs.
Une proposition
==> des qu'une cellule de la ligne 38 change alors la macro s’exécute automatiquement
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim cell, rng As Range
Set rng = Range("A6:TA37")
If Not Application.Intersect(Target, Rows(38)) Is Nothing Then
For Each cell In rng
If cell.Value = Cells(38, Target.Column) Then
cell.ClearContents
End If
Next cell
End If
End Sub
Une proposition
==> des qu'une cellule de la ligne 38 change alors la macro s’exécute automatiquement
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim cell, rng As Range
Set rng = Range("A6:TA37")
If Not Application.Intersect(Target, Rows(38)) Is Nothing Then
For Each cell In rng
If cell.Value = Cells(38, Target.Column) Then
cell.ClearContents
End If
Next cell
End If
End Sub
Un peu usine à gaz à mon avis mais fonctionne (je me suis arrêté à NY) :
VB:
Sub ClearContentsIfContains()
Dim cell, rng As Range
Set rng = Range("A6:TA37")
Set rConditions = Range("A38:NY38")
For Each cell In rng
For Each val in rConditions
If cell.Value = val.Value Then
cell.ClearContents
End If
Next val
Next cell
End Sub
Sinon, pour effectuer ce genre d'opération plus rapidement, j'aurais tendance à passer par un Array VBA, qui est un objet plus rapide pour boucler/changer des valeurs.
Bonjour,
j'ai essayer votre programme et mon excel mouline pendant longtemps quand je lance le programme. Je ne connais pas Array VBA donc je ne sais pas si ca marcherai mieux.