Re : supprimer la croix rouge d'un usf
Bonjour Michel,
Je pense que tu vas comprendre en voyant ceci :
Bonsoir Spitolan08,
voici le code sur l'usf :
Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Usf1_Initialize()
Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
End Sub
Private Sub Usf1_Fermer()
Unload Usf1 'ou Me
End Sub
Le code dans un module :
Sub VerifStock()
Dim Diko As Object ' Je vais stocker le nom des feuilles à traiter
Dim CurCel As Range ' Cellule contenant le nom que je cherche
Dim CurTrouve As Range ' Cellule contenant le nom trouvé
Dim Forme As Shape ' Ma boîte d'attente
Dim FDep As String ' Feuille en cours
Dim FFin As String ' Feuille pour évaluer le stock
Dim Ws As Worksheet ' Pour manipuler aisément les feuilles du classeur
Usf1.Show
Call EffVerifStock
Set Diko = CreateObject("Scripting.Dictionary")
For Each CurCel In [A_Traiter] ' Scrute la plage nommée
If CurCel = "" Then Exit For ' Je suis au bout de la liste
Diko.Add UCase(CurCel.Value), UCase(CurCel.Value) ' Passe tout en majuscules : Moins de tracas
Next CurCel
If Diko.Count = 0 Then Exit Sub ' Si pas de feuilles à traiter je quitte
FFin = "Cde"
Set CurCel = Sheets(FFin).Range("B15")
Sheets(FFin).Range("G15:K" & Range("B65536").End(xlUp).Row).ClearContents
While CurCel <> "" ' Tant que l'on a quelque chose à chercher
For Each Ws In ThisWorkbook.Sheets ' Je regarde toutes les feuilles du classeur
If Diko.Exists(UCase(Ws.Name)) Then ' Feuille dans la liste donc je cherche
FDep = Ws.Name
With Sheets(FDep).Range("H2:IV2") ' Sur toute la ligne 2
Set CurTrouve = .Find(CurCel, LookIn:=xlValues, lookat:=xlWhole)
If Not CurTrouve Is Nothing Then ' Trouvé
If CurCel.Offset(0, 6) <> "" Then ' Déjà inscrit un nom de page
Cells(CurCel.Row, Range("IV" & CurCel.Row).End(xlToLeft).Column + 1) = Ws.Name
Else
CurCel.Offset(0, 6) = Ws.Name ' C'est le premier que j'inscrit
End If
Set CurTrouve = CurTrouve.Offset(-1, 0) ' Avec ces ###Grrr@@@ cellules fusionnées
CurCel.Offset(0, 5) = CurCel.Offset(0, 5) + CurTrouve.Offset(0, 3)
End If
End With
End If
Next Ws
Set CurCel = CurCel.Offset(1, 0) ' Se positionne sur la prochaine cellule à vérifier
Wend
Unload Usf1
End Sub
Je te remerci de me corriger