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

Erreur 1004 - Rechercher l'intitulé d'une Colonne ou d'une Ligne pour la masquer

Artic

XLDnaute Nouveau
Bonjour,

J'interviens dans la création d'un petit "logiciel" de gestion de KPI avec Excel. Je précise que mes connaissances du VBA sont proches de 0, et que je me suis débrouillé jusque là avec les moyens du bord. Il se peut donc que ce code vous paraisse totalement amateur, c'est le cas. C'est du bricolage.

Le code que je vous soumet sur lequel je bloque est l'action de mon UserForm "Sortie d'un salarié".

On sélectionne le nom du salarié (Combobox3), le numéro de la semaine (Combobox2), et on clique sur confirmer la sortie (CommandButton1)

De la les actions voulues sont :

- Rechercher dans une plage d'entêtes dans la feuille "PARAMETRES" cacher la colonne qui a pour entête le nom du salarié (Combobox3)

- Dans la feuille "suivi heures" cacher la ligne qui a pour entête le nom du salarié (Combobox3)

- Dans chacune des 52 feuilles qui représentent chacune des 52 semaines qui sont les 52 premières feuilles du classeur pour coller à l'index, cacher la colonne qui a pour entête le nom du salarié (Combobox3), à partir de la semaine précisée (Combobox2)

Je précise que tout marche pour l'ajout des salariés.

L'erreur : 1004 : La méthode Select de la classe Range a échoué (sur la ligne surlignée dans le code ci dessous)

Private Sub CommandButton1_Click()

If MsgBox("Confirmez vous la sortie du salarié ?", vbYesNo, "Confirmation de la sortie") = vbYes Then

With Sheets("PARAMETRAGE").Range("b7:aq7")

Dim c As Range

Set c = .Find(ComboBox3.Value, LookIn:=xlValues)
If Not c Is Nothing Then firstAddress = c.Address

c.Select

Selection.EntireColumn.Hidden = True

End With

With Sheets("suivi heures").Range("b2:b41")

Dim c As Range

Set c = .Find(ComboBox3.Value, LookIn:=xlValues)
If Not c Is Nothing Then firstAddress = c.Address

c.Select

Selection.EntireRow.Hidden = True

End With

a = ComboBox2.Value


boucle1:
a = a + 1


If a <= 52 Then GoTo test1 Else GoTo test2

test1:

With Sheets(a).Range("b2:ax2")

Dim d As Range

Set d = .Find(ComboBox3.Value, LookIn:=xlValues)
If Not d Is Nothing Then firstAddress = c.Address

Selection.EntireColumn.Hidden = True

End With

GoTo boucle1

test2:

With Sheets(a).Range("b2:ax2")

Set d = .Find(ComboBox3.Value, LookIn:=xlValues)
If Not d Is Nothing Then firstAddress = c.Address

Selection.EntireColumn.Hidden = True

End With

End If

End Sub


D'avance merci à vous pour votre aide.
 

Paf

XLDnaute Barbatruc
Re : Erreur 1004 - Rechercher l'intitulé d'une Colonne ou d'une Ligne pour la masquer

Bonjour

If Not c Is Nothing Then firstAddress = c.Address
oui, mais si c is Nothing, c.Select, ne peut pas fonctionner

peut-être modifier le test:
Code:
If  c Is Nothing Then 
   MsgBox " Non Trouvé"
   Exit Sub
End If

firstAddress = c.Address
c.EntireColumn.Hidden = True
....

A+
 

Artic

XLDnaute Nouveau
Re : Erreur 1004 - Rechercher l'intitulé d'une Colonne ou d'une Ligne pour la masquer

Modifications effectués à chaque occurrence de ce test. Malgré tout, toujours erreur 1004 sur c.Select .
 

Paf

XLDnaute Barbatruc
Re : Erreur 1004 - Rechercher l'intitulé d'une Colonne ou d'une Ligne pour la masquer

Re,
normalement il n'y a plus de c.select !!

Pouvez vous joindre votre classeur anonymisé.

A+
 

Discussions similaires

Réponses
2
Affichages
191
Réponses
12
Affichages
631
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…