Changement par excel de la référence d'un nom défini

  • Initiateur de la discussion Initiateur de la discussion HYBRiD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

HYBRiD

Guest
Bonjour tlm 🙂

Je suis un peu perdu... j'ai monté un code VBA qui permet, en un premier temps, d'extraire des résultats à partir d'une banque de donnée, après quoi ces données sont trsf dans une feuille tampon où les résultats sont nettoyés (enlèvements des valeurs "#N/A" renvoyés par la matrice de la dBase). Les données nettoyées devrait s'inclure automatiquement dans le nom "TAMPON_VALEUR" que j'ai déterminé comme suit:

=DECALER(Trsf!$A$1;;;NBVAL(Trsf!$A:$A);1) (voir le code entier plus bas)

Hors, quand je démarre le code, j'obtiens une erreur du type "erreur définie par l'application ou par l'objet" et quand je retourne voir le nom, il est comme ça:

=DECALER(Trsf!#REF!;;;NBVAL(Trsf!$A:$A);1)

Est-ce que quelqu'un peu m'aider 🙂

HYBRiD


Mon code (asser basic, mais je suis débutant 😉 )

Sub Init_pH()
'
' Permet l'extraction des données sur le pH des 12 sites' vers les graphiques et tableaux de la feuille pH

Sheets("Résultats").Select
ActiveSheet.Range("D6").Select
ActiveCell = "pH"
'Effectue la requête pour le pH

' Site 1
ActiveSheet.Range("D2") = "Site 1"
ActiveSheet.Range("D3") = "01-01-04"
ActiveSheet.Range("E3") = "31-12-04"
'Sélectionne la dateet le site à extraire de la dBase
Worksheets("Résultats").Range("VALEUR3").Copy
Worksheets("Trsf").Select
ActiveSheet.Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.Replace What:="#N/A", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False
Sheets("Trsf").Select
ActiveSheet.Range("TAMPON_VALEUR").Select
Selection.Copy
Worksheets("pH").Select
ActiveSheet.Range("B4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Worksheets("Trsf").Select
ActiveSheet.Range("A1:A100").Delete Shift:=xlToLeft


End Sub
 
Bonsoir,

le problème "=DECALER(Trsf!#REF!;;;NBVAL(Trsf!$A:$A);1)" vient du fait que, à la fin de ton code, tu supprimes définitivement la plage A1:A100 :

Worksheets("Trsf").Select
ActiveSheet.Range("A1:A100").Delete Shift:=xlToLeft

Ce qui fait que le nom faisant référence à la fonction Decaler, perd sont point de départ qui est la cellule A1

A la place, il vaut mieux inscrire ceci :

Worksheets("Trsf").Select
ActiveSheet.Range("A1:A100").ClearContents

Ce qui a pour but de supprimer le contenu des cellules et non les cellules entières.

@+

Ronan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
547
Réponses
18
Affichages
316
Réponses
2
Affichages
281
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
491
Retour