Supprimer une colonne sur un critère
Fred
-
Gyrus Messages postés 3360 Statut Membre -
Gyrus Messages postés 3360 Statut Membre -
Bonjour,
Une valeur (calculée) est dans une case de Sheet1.
Cette valeur est (peut-être) une entête de colonne de Sheet2
Comment supprimer cette colonne de Sheet2 si elle existe.
Merci d'avance de votre aide.
Fred
Une valeur (calculée) est dans une case de Sheet1.
Cette valeur est (peut-être) une entête de colonne de Sheet2
Comment supprimer cette colonne de Sheet2 si elle existe.
Merci d'avance de votre aide.
Fred
1 réponse
-
Bonjour,
Avec une macroSub Supprimer()
Dim Valeur As String
Dim C As Range
Valeur = InputBox("Veuillez indiquer l'adresse de la cellule qui contient la valeur à rechercher", "RECHERCHE", "Sheet1!$A$1")
With Sheets("Sheet2").Rows(1)
Set C = .Find(Range(Valeur).Value, , xlValues, xlWhole)
If Not C Is Nothing And C <> "" Then
C.EntireColumn.Delete
End If
End With
End Sub
A+-
Merci beaucoup Gyrus,
Rapidité de la réponse, efficacité et exactitude.
L'idée est de supprimer une réservation de salle de réunion, précédemment journalisée lors de sa création dans une nouvelle colonne de l'onglet WORK. L'entête de chaque colonne de WORK est une concaténation du nom de la salle et de ses date/heure de début de réservation.
Merci encore, le code pour info :
Sub SUPPRIMER()
'
' Supprimer une réservation
'
Sheets("FICHE_RESA").Select
Range("B19").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(R14C2,R15C2)"
Range("B20").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(HLOOKUP(CONCATENATE(R14C2,R15C2),WORK!R1,1,FALSE)),""Libre"",""Occupée"")"
If Range("B20") = "Occupée" Then DELETERESA
If Range("B20") = "Libre" Then MsgBox "Salle Libre"
Range("B19:B20").Select
Selection.ClearContents
Range("A1").Select
End Sub
Sub DELETERESA()
Dim C As Range
Valeur = "FICHE_RESA!$B$19"
With Sheets("WORK").Rows(1)
Set C = .Find(Range(Valeur).Value, , xlValues, xlWhole)
If Not C Is Nothing And C <> "" Then
C.EntireColumn.delete
End If
End With
Sheets("FICHE_RESA").Select
Range("B19:B20").Select
Selection.ClearContents
Range("A1").Select
MsgBox "Réservation Supprimée"
End Sub- Il me semble que tu fais bien des détours pour un résultat simple.
Essaie ce codeSub Supprimer()
Dim WsS As Worksheet, WsC As Worksheet
Dim Valeur As String
Dim C As Range
Set WsS = Worksheets("FICHE_RESA")
Set WsC = Worksheets("WORK")
Valeur = WsS.[B14] & WsS.[B15]
Set C = WsC.Rows(1).Find(Valeur, , xlValues, xlWhole)
If Not C Is Nothing Then
If C <> "" Then
C.EntireColumn.Delete
MsgBox "Réservation Supprimée"
End If
Else
MsgBox "Salle Libre"
End If
WsS.Range("B19:B20").ClearContents
WsS.Select
Range("A1").Select
End Sub
A+
-