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 26/10/2011, 10h24   #1
Nouveau Membre du Club
 
Ousermaatre Setepenre
Inscription : mai 2010
Messages : 83
Détails du profil
Informations personnelles :
Nom : Ousermaatre Setepenre

Informations forums :
Inscription : mai 2010
Messages : 83
Points : 39
Points : 39
Par défaut Les voies de l'informatique sont parfois impénétrables

Bonjour à tous,

Je cherche un costaud en VBA qui pourrait m'expliquer pourquoi une routine qui fonctionne très bien dans plusieurs programmes Excel, ne fonctionne pas dans le dernier que je viens de faire, sachant que, hier encore, elle fonctionnait.

Il s'agit de la routine ci-après :
Code :
1
2
3
4
5
6
7
    'renomme la zone UI de la feuille Tables
    ActiveWorkbook.Names("UI").Delete
 
    Sheets("Tables").Select
    Range("F2").Select
    N_I = ActiveCell.End(xlDown).Row
    ActiveWorkbook.Names.Add Name:="UI", RefersToR1C1:="=Tables!R2C6:R" & N_I & "C6"
Donc, quand cette routine a "tourné", le nom UI est créé (on le voit dans la fenêtre "définir un nom" alors que ce même nom n'apparaît pas dans la fenêtre "Atteindre".
Plus extraordinaire, et c'est là que le titre de mon message se justifie, c'est que si je déroule pas-à-pas ma routine, elle fonctionne, le nom "UI" apparaît dans la fenêtre "Atteindre".

Je rappelle que hier encore cette routine fonctionnait. Quelqu'un peut-il m'expliquer pourquoi ?

NB : j'ai rebouté plusieurs fois ma machine.

Merci d'avance pour votre aide
Images attachées
Type de fichier : jpg Insertion.JPG (21,4 Ko, 8 affichages)
Type de fichier : jpg Atteindre.JPG (16,3 Ko, 8 affichages)
setepenre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 11h56   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour
Je n'ai pas eu ce problème en utilisant ton code (ré adapté)
Code :
1
2
3
4
5
6
7
8
9
10
11
Dim N_I As Long
 
With ThisWorkbook
    On Error Resume Next
    .Names("UI").Delete
    On Error GoTo 0
    With Worksheets("Tables")
        N_I = .Cells(.Rows.Count, "F").End(xlUp).Row
    End With
    .Names.Add Name:="UI", RefersToR1C1:="=Tables!R2C6:R" & N_I & "C6"
End With
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 10h02   #3
Nouveau Membre du Club
 
Ousermaatre Setepenre
Inscription : mai 2010
Messages : 83
Détails du profil
Informations personnelles :
Nom : Ousermaatre Setepenre

Informations forums :
Inscription : mai 2010
Messages : 83
Points : 39
Points : 39
Par défaut Problème identique

Bonjour Mercatog,

D'abord merci de t'être penché sur mon problème.

J'ai remplacé mon code par le tien, et je retrouve la même anomalie.

En fait, j'ai essayé de comprendre ce qu'il s'est passé et je trouve l'anomalie suivante :
Dans les applications qui fonctionnent, la zone nommée apparaît dans le contrôle "Fait référence à" de la fenêtre "définir un nom" sous la forme suivante : =Tables!$F$2:$F$37
Dans l'application défectueuse, la zone nommée apparaît dans le contrôle "Fait référence à" de la fenêtre "définir un nom" sous la forme suivante : =Tables!R2C6:R37C6

En fait, la traduction ne se fait pas et c'est la raison pour laquelle je ne retrouve pas le nom "UI" dans la fenêtre "Atteindre".

Vois-tu pour quelle raison cette traduction ne se fait plus ?

NB j'ai essayé en remplaçant "UI" par un autre nom, le problème reste identique.
setepenre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h48.


 
 
 
 
Partenaires

Hébergement Web