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 !
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" <noreply@xxx.yy> a écrit dans le message de groupe de discussion :
eLpEV$ORKHA.1372@TK2MSFTNGP02.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de discussion :
#y6vdSORKHA.4504@TK2MSFTNGP04.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de discussion :
#2bGEINRKHA.1232@TK2MSFTNGP05.phx.gbl...
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 !
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 !
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 !
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" <noreply@xxx.yy> a écrit dans le message de groupe de discussion
:
eLpEV$ORKHA.1372@TK2MSFTNGP02.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de
discussion :
#y6vdSORKHA.4504@TK2MSFTNGP04.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de
discussion :
#2bGEINRKHA.1232@TK2MSFTNGP05.phx.gbl...
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 !
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 !
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 cla sseurs)
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 !
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 cla sseurs)
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 !
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 cla sseurs)
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 !
Michdenis,
Quelle patience et SAVOIR !!
Amicalement.
diddy01
"michdenis" a écrit dans le message de
news: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 !
Michdenis,
Quelle patience et SAVOIR !!
Amicalement.
diddy01
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:E2D7DA45-6EBD-4FFC-9F11-F91BD712CAEB@microsoft.com...
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" <noreply@xxx.yy> a écrit dans le message de groupe de
discussion :
eLpEV$ORKHA.1372@TK2MSFTNGP02.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de
discussion :
#y6vdSORKHA.4504@TK2MSFTNGP04.phx.gbl...
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" <noreply@xxx.yy> a écrit dans le message de groupe de
discussion :
#2bGEINRKHA.1232@TK2MSFTNGP05.phx.gbl...
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 !
Michdenis,
Quelle patience et SAVOIR !!
Amicalement.
diddy01
"michdenis" a écrit dans le message de
news: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 !