Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 14h44   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Par défaut Problème de nom suite à pose filtre

Bonjour à tous,

Voilà, j'ai un problème de reconnaissance de nom sur une feuille ; je "tourne" depuis hier et ne trouve pas !

Je crée un nom sur une plage aprés application d'un filtre : ici "1*".

Code :
1
2
3
4
5
6
7
8
 DerniereLigne = Sheets("Semestre 1").Range("A65536").End(xlUp).Row
    Sheets("Semestre 1").Activate
    Selection.AutoFilter
    ActiveSheet.Range("$A$2:$GH$" & DerniereLigne).AutoFilter Field:=1, Criteria1:="=1*", _
        Operator:=xlAnd
 
    ActiveWorkbook.Names.Add Name:="Activites_Courantes", _
        RefersTo:="=Semestre 1!" & Sheets("Semestre 1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address


Je vois le nom dans la boîte de dialogue "Gestionnaire de noms".

Le problème est que dés que j'essaye de l'utiliser par

Code :
   Application.Goto Reference:="Activites_Courantes"
je me fais jeter par "Erreur 1004" !!

Auriez vous une idée, s'il vous plait ?
Merci d'avance.
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 18h09   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Tu as essayé :
Code :
Application.Goto Reference:=Range("Activites_Courantes")
?
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 08h02   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Bonjour ZebreLoup,

Merci de ton aide !
Je viens d'essayer et cela ne marche pas !
J'ai toujours Erreur 1004 "La méthode 'Range' de l'objet '_Global' a échoué".
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 08h42   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Tu dis que tu vois bien le nom dans la boite de dialogue "Gestionnaire de noms", mais il correspond bien à une zone existante ?

Essaie de mettre
Code :
Range("Activites_Courantes")
dans les espions en mode debug pour voir ce qu'il te retourne
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 09h16   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Voilà : le nom est visible dans la boîte de gestion et donne ceci :

Code :
=Semestre '1'!$A$2:$GH$2;'Semestre 1'!$A$5:$GH$14
résultat du filtre.

Dés que je lance la procedure par F8, j'ai le même message d'erreur dans la zone espion mais ce qui m'intrigue c'est qu'il me renvoie le type Integer !?
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 09h31   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Integer, c'est parce que c'est une erreur, c'est le numéro de l'erreur qui est un Integer.

Ton range devrait être plutôt :
Code :
='Semestre 1'!$A$2:$GH$2;'Semestre 1'!$A$5:$GH$14
(Position des ')

C'est une erreur de copier-coller de ta part ? Ton Excel est en anglais ou en français ?
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 09h52   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
ZebreLoup, je crois que tu as mis le doigt dessus !

Mon EXL est en français.

Quand je nomme la plage en dur, pas de problème, EXL me met bien les " ' ". Mais à voir, dés que cela passe par VBA, en utilisant cette synthaxe

Code :
1
2
ActiveWorkbook.Names.Add Name:="Activites_Courantes", _
        RefersTo:="=Semestre 1!" & Sheets("Semestre 1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address
il ne les met plus !?!

'Comprends plus ! Sniff
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 10h00   #8
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
En essayant comme ça :
Code :
1
2
ActiveWorkbook.Names.Add Name:="Activites_Courantes", _
        RefersTo:=Sheets("Semestre 1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address
ou
Code :
1
2
ActiveWorkbook.Names.Add Name:="Activites_Courantes", _
        RefersTo:=Sheets("Semestre 1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).AddressLocal
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 10h24   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Ca marche pon !

Il met :
Code :
="$A$2:$GH$2;$A$5:$GH$14"
comme référence mais fait abstraction de la feuille.

Toujour Erreur 1004.
Sorry !
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 11h35   #10
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Bon cette fois, j'ai testé, ça marche :
Code :
1
2
ActiveWorkbook.Names.Add Name:="Activites_Courantes", _
        RefersTo:=Sheets("Semestre 1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 13h52   #11
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
ZebreLoup un GRAND MERCI !!
Je te dois une fière chandelle cela fonctionne !
Je vais pouvoir avancer un pas de plus dans mon application !

Merci encore !
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h45.


 
 
 
 
Partenaires

Hébergement Web