Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sheets(3).Select... Plante... J'enrage !

14 réponses
Avatar
LANIMAL
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !

10 réponses

1 2
Avatar
laurent.daures
bonjour,
cela arrive lorsque la feuille en question est masquée.
Est-ce le cas ?
est-ce qu'il y a bien 3 feuilles dans le classeur ?
teste cette macro qui te dira tout ça.

Sub feuilles()
For i = 1 To Sheets.Count
If Sheets(i).Visible = xlSheetHidden Then
MsgBox "feuille " & i & " masquée"
End If
MsgBox i & " " & Sheets(i).Name
Next i
End Sub
amicalement
Siesting Hoax



"LANIMAL" a écrit dans le message de news:
%
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !


Avatar
LANIMAL
Merci Laurent
J'avais bien vérifié qu'aucune feuille n'était masquée.
(c'est vrai que c'est un piège que j'évite)
Mais ta Sub m'a permis de mettre en évidence que quelque chose doit être
pourri dans mon classeur car les instructions :
If Sheets(i).Visible = ...
et ... Sheets(i).Name
me renvoient la même alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
J'ai bien vérifié que ta Sub opère tout à fait normalement sur plusieurs
autres classeurs.
A moins d'une aide salvatrice prochaine, je vais me décider à
reconstruire complètement, et en pas à pas le classeur. :-(((
Ça m'est arrivé une fois en 15 ans !
Merci, ton aide m'a permis de confirmer... ce que je craignais.



laurent.daures a écrit :
bonjour,
cela arrive lorsque la feuille en question est masquée.
Est-ce le cas ?
est-ce qu'il y a bien 3 feuilles dans le classeur ?
teste cette macro qui te dira tout ça.

Sub feuilles()
For i = 1 To Sheets.Count
If Sheets(i).Visible = xlSheetHidden Then
MsgBox "feuille " & i & " masquée"
End If
MsgBox i & " " & Sheets(i).Name
Next i
End Sub
amicalement
Siesting Hoax



"LANIMAL" a écrit dans le message de news:
%
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !






Avatar
LANIMAL
Me re-voilà...
Une info supplémentaire peut-être responsable de qq chose.
La Sub initiale dans laquelle se trouve la ligne en cause
se nomme : Sub téléchrgt_bnq_CA()
Dans le module :
M5_téléchrgt_bnq_CA du projet VBAProject(PERSO.xls).

Lors de l'élaboration des procédures VBA
dans mon projet (Classeur bnqCA.xls)
J'ai vu une alerte (de mémoire): Nom "téléchrgt_bnq_CA" ambigu.

Je n'ai rien trouvé d'anormal, ce nom n'apparaît nulle part ailleurs,
J'ai donc ignoré cette alerte, qui n'est d'ailleurs plus réapparue.
Serait-ce là une cause du problème ?
Merci de ton attention (et peut-être de celle de qq autres...)

laurent.daures a écrit :
bonjour,
cela arrive lorsque la feuille en question est masquée.
Est-ce le cas ?
est-ce qu'il y a bien 3 feuilles dans le classeur ?
teste cette macro qui te dira tout ça.

Sub feuilles()
For i = 1 To Sheets.Count
If Sheets(i).Visible = xlSheetHidden Then
MsgBox "feuille " & i & " masquée"
End If
MsgBox i & " " & Sheets(i).Name
Next i
End Sub
amicalement
Siesting Hoax



"LANIMAL" a écrit dans le message de news:
%
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !






Avatar
michdenis
Bonjour,

Essaie ce petit test :

Copie l'intégralité du contenu de ton module
(de la première à la dernière ligne) dans
l'application NotePad pour le conserver.

Lorsque tu as sauvegardé ton code, supprime
la totalité de ton code du module, enregistre
ton classeur et saisis à nouveau ta procédure
qui est problématique. As-tu toujours ton
erreur ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !
Avatar
Jacquouille
Bonjour
Sans vouloir enlever un iota aux excellentes réponses, auserais-je suggérer
de cliquer sur chaque onglet et le rebaptiser? Il arrive que certains signes
se glissent sournoisement dans les noms, voire des espaces et ce, à l'insu
du plein gré de l'auteur.
Le mieux, c'est d'effacer et rebaptiser chaque feuille. Après, on verra si
le problème est troujours présent.
Bonne chance et bon WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"LANIMAL" a écrit dans le message de news:
%
Me re-voilà...
Une info supplémentaire peut-être responsable de qq chose.
La Sub initiale dans laquelle se trouve la ligne en cause
se nomme : Sub téléchrgt_bnq_CA()
Dans le module :
M5_téléchrgt_bnq_CA du projet VBAProject(PERSO.xls).

Lors de l'élaboration des procédures VBA
dans mon projet (Classeur bnqCA.xls)
J'ai vu une alerte (de mémoire): Nom "téléchrgt_bnq_CA" ambigu.

Je n'ai rien trouvé d'anormal, ce nom n'apparaît nulle part ailleurs,
J'ai donc ignoré cette alerte, qui n'est d'ailleurs plus réapparue.
Serait-ce là une cause du problème ?
Merci de ton attention (et peut-être de celle de qq autres...)

laurent.daures a écrit :
bonjour,
cela arrive lorsque la feuille en question est masquée.
Est-ce le cas ?
est-ce qu'il y a bien 3 feuilles dans le classeur ?
teste cette macro qui te dira tout ça.

Sub feuilles()
For i = 1 To Sheets.Count
If Sheets(i).Visible = xlSheetHidden Then
MsgBox "feuille " & i & " masquée"
End If
MsgBox i & " " & Sheets(i).Name
Next i
End Sub
amicalement
Siesting Hoax



"LANIMAL" a écrit dans le message de news:
%
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !







Avatar
LANIMAL
Bonjour
Ben oui, elle est toujours là :-((
à +... peut-être ?

michdenis a écrit :
Bonjour,

Essaie ce petit test :

Copie l'intégralité du contenu de ton module
(de la première à la dernière ligne) dans
l'application NotePad pour le conserver.

Lorsque tu as sauvegardé ton code, supprime
la totalité de ton code du module, enregistre
ton classeur et saisis à nouveau ta procédure
qui est problématique. As-tu toujours ton
erreur ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !



Avatar
michdenis
Comme tu as fait référence dans un de tes messages précédents
de ton classeur perso,

Où ta procédure est-elle écrite ?
Si elle est dans ton perso, et que tu n'as pas ajouté la référence
au classeur actif à l'écran, cela ne peut pas fonctionner !

With Workbooks("NomDuClasseurActif.xls")
.Activate
.Sheets(3).Select
End With

Est-ce toujours pareil ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour
Ben oui, elle est toujours là :-((
à +... peut-être ?

michdenis a écrit :
Bonjour,

Essaie ce petit test :

Copie l'intégralité du contenu de ton module
(de la première à la dernière ligne) dans
l'application NotePad pour le conserver.

Lorsque tu as sauvegardé ton code, supprime
la totalité de ton code du module, enregistre
ton classeur et saisis à nouveau ta procédure
qui est problématique. As-tu toujours ton
erreur ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !



Avatar
LANIMAL
Alors, pour être plus précis :
- je pars de la page Excel téléchargée depuis le site de la banque.
- je clique sur le bouton perso [CA] (placé dans la barre d'outils
d'Excel) qui lance l’exécution de la sub ci-dessous.
-----------------------------------------------------------
Sub téléchrgt_bnq_CA()
Téléchargement = ActiveWorkbook.Name
'mémo du nom du classeur téléchargé (pour y revenir + tard)

PremLign = Application.Match("CCHQ nnnn", Columns("A"), 0) + 5
'nnnn=n° du cpte

Range("A" & PremLign).Select 'sélection 1ère écriture téléchargée
Range(Selection, Selection.End(xlDown)).EntireRow.Copy
'sélection de toutes les lignes téléchargées

On Error Resume Next
Workbooks("bnqCA.xls").Activate
If Err <> 0 Then Workbooks.Open Filename:="D:Documents
MBbnqCA.xls", UpdateLinks:=0

Sheets("Ma").Select
Rows(3).Insert ‘Insertion en tête des écritures précédentes
…..
End Sub
-------------------------------------------------------------------------
Et c’est donc l’avant- dernière instruction (Sheets("Ma").Select) qui plante
avec l’alerte : Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet

Je dois préciser que des procédures tout à fait analogues pour d’autres
projets ne m’ont jamais posé de pb.
Bien amicalement


michdenis a écrit :
Comme tu as fait référence dans un de tes messages précédents
de ton classeur perso,

Où ta procédure est-elle écrite ?
Si elle est dans ton perso, et que tu n'as pas ajouté la référence
au classeur actif à l'écran, cela ne peut pas fonctionner !

With Workbooks("NomDuClasseurActif.xls")
.Activate
.Sheets(3).Select
End With

Est-ce toujours pareil ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour
Ben oui, elle est toujours là :-((
à +... peut-être ?

michdenis a écrit :
Bonjour,

Essaie ce petit test :

Copie l'intégralité du contenu de ton module
(de la première à la dernière ligne) dans
l'application NotePad pour le conserver.

Lorsque tu as sauvegardé ton code, supprime
la totalité de ton code du module, enregistre
ton classeur et saisis à nouveau ta procédure
qui est problématique. As-tu toujours ton
erreur ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !





Avatar
LANIMAL
Oui, merci, Jacqouille,j'y avais bien pensé,
et c'est pour cela que j'ai testé avec l'index :
Sheets(3).Select ("Ma" étant la 3ème feuille)
... mais sans succès.
Merci

Jacquouille a écrit :
Bonjour
Sans vouloir enlever un iota aux excellentes réponses, auserais-je suggérer
de cliquer sur chaque onglet et le rebaptiser? Il arrive que certains signes
se glissent sournoisement dans les noms, voire des espaces et ce, à l'insu
du plein gré de l'auteur.
Le mieux, c'est d'effacer et rebaptiser chaque feuille. Après, on verra si
le problème est troujours présent.
Bonne chance et bon WE


Avatar
michdenis
J'ai réécrit ton code :

Avec déclaration des variables
En prenant soin d'indiquer dans quel objet se
retrouve les objets avec lesquels je veux travailler

C'est un peu plus long à écrire mais ce type de code
est plus lisible, plus rapide à l'exécution...

Dans le code, tu dois remplacer "Feuil1" pour le
nom de l'objet feuille où sont tes données
With Feuil1

'-----------------------------------------
Sub téléchrgt_bnq_CA()
'Déclaration des variables
Dim Téléchargement As String
Dim Chemin As String
Dim Fichier As String
Dim PremLign As Long
Dim MaVar As String
Dim Wk As Workbook

'mémo du nom du classeur téléchargé (pour y revenir + tard)
Téléchargement = ActiveWorkbook.Name
Chemin = "D:DocumentsMB"
Fichier = "bnqCA.xls"

'Élément à trouver
MaVar = "CCHQ nnnn"

On Error Resume Next
'Vérifier si le fichier existe
If Dir(Fichier) <> "" Then
'Vérifier si le fichier est ouvert
Set Wk = Workbooks(Fichier)
If Wk Is Nothing Then
'Le fichier n'est pas ouvert
'Ouvrir le fichier
Set Wk = Workbooks.Open(Filename:=Chemin & _
Fichier, UpdateLinks:=0)
End If

'S'assurer que ce classeur est "Actif
ThisWorkbook.Activate
With Feuil1 'La propriété Name de l'objet Feuille en VBA
Err = 0
PremLign = Application.Match(MaVar, _
.Columns("A"), 0) + 5
'Si la fonction Match() a trouvé
If Err = 0 Then
'nnnn=n° du cpte
'sélection 1ère écriture téléchargée
With .Range("A" & PremLign & ":A" & _
.Range("A65536").End(xlUp).Row)
'Copie dans le presse-papier de la sélection
.EntireRow.Copy
End With
Else
MsgBox "Pas trouver : """ & MaVar & ""
Exit Sub
End If
End With
With Wk
With .Sheets("Ma")
.Rows(3).Insert
'le reste de ton code

End With
End With
Else
MsgBox "Le fichier """ & Chemin & Fichier & """ est introuvable"
Exit Sub
End If
'Et si tu veux fermer ton classeur avec sauvegarde
'à la fin de l'opération
'Wk.Close True
End Sub
'-----------------------------------------



"LANIMAL" a écrit dans le message de groupe de discussion :
eLpEV$
Alors, pour être plus précis :
- je pars de la page Excel téléchargée depuis le site de la banque.
- je clique sur le bouton perso [CA] (placé dans la barre d'outils
d'Excel) qui lance l’exécution de la sub ci-dessous.
-----------------------------------------------------------
Sub téléchrgt_bnq_CA()
Téléchargement = ActiveWorkbook.Name
'mémo du nom du classeur téléchargé (pour y revenir + tard)

PremLign = Application.Match("CCHQ nnnn", Columns("A"), 0) + 5
'nnnn=n° du cpte

Range("A" & PremLign).Select 'sélection 1ère écriture téléchargée
Range(Selection, Selection.End(xlDown)).EntireRow.Copy
'sélection de toutes les lignes téléchargées

On Error Resume Next
Workbooks("bnqCA.xls").Activate
If Err <> 0 Then Workbooks.Open Filename:="D:Documents
MBbnqCA.xls", UpdateLinks:=0

Sheets("Ma").Select
Rows(3).Insert ‘Insertion en tête des écritures précédentes
…..
End Sub
-------------------------------------------------------------------------
Et c’est donc l’avant- dernière instruction (Sheets("Ma").Select) qui plante
avec l’alerte : Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet

Je dois préciser que des procédures tout à fait analogues pour d’autres
projets ne m’ont jamais posé de pb.
Bien amicalement


michdenis a écrit :
Comme tu as fait référence dans un de tes messages précédents
de ton classeur perso,

Où ta procédure est-elle écrite ?
Si elle est dans ton perso, et que tu n'as pas ajouté la référence
au classeur actif à l'écran, cela ne peut pas fonctionner !

With Workbooks("NomDuClasseurActif.xls")
.Activate
.Sheets(3).Select
End With

Est-ce toujours pareil ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour
Ben oui, elle est toujours là :-((
à +... peut-être ?

michdenis a écrit :
Bonjour,

Essaie ce petit test :

Copie l'intégralité du contenu de ton module
(de la première à la dernière ligne) dans
l'application NotePad pour le conserver.

Lorsque tu as sauvegardé ton code, supprime
la totalité de ton code du module, enregistre
ton classeur et saisis à nouveau ta procédure
qui est problématique. As-tu toujours ton
erreur ?



"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Pendant 3 heures, j'enrage.

Le classeur bnqCA.xls comporte 3 feuilles :
"Mi" - "Report" - "Ma" (Ma a pour index : 3)

Il est ouvert, sur la feuil "Mi"
La procédure ci-dessous :
Sub Test1()
Sheets(3).Select
End Sub
me renvoie l'alerte :
Erreur d'exécution '40036':
Erreur définie par l'application ou par l'objet
(Cette macro ne m'a jamais posé de Pb dans d'autres classeurs)
En désespoir de cause, j'ai testé les instructions ci-dessous
qui renvoient toutes la même alerte.

Sheets(3).Activate
Sheets("Ma").Select
Sheets("Ma").Activate
Worksheets(3).Select
Worksheets(3).Activate
Worksheets("Ma").Select
Worksheets("Ma").Activate

Je désespère, un "maître" pourrait-il m'aider.
Ô combien merci à celui-ci !





1 2