Range inexistante empeche le code de tourner

  • Initiateur de la discussion Initiateur de la discussion Cipic
  • 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 !

C

Cipic

Guest
Union(Range("titre_source"), Range("corps_source")).Copy


Voila un bout de code que j'aimerais exécuter. Problème : une partie de ce que je veux copier est fixe, et une partie de ce que je veux copier existe de manière discontinue.

Donc parfois le corps_source existe, parfois la range est vide. Et bien entendu quand c'est vide, ça me met une erreur.

Malgré un "if iserror(range machin) then *** else --- ", l'absence d'existence de ma Range empêche la macro de tourner. Je suppose que ce n'est donc pas le bon contournement de l'erreur.

J'ai mis un "on error resume next" en tête de macro mais rien n'y fait.

Comment puis-je créer cette sélection de range(titre1) + range(corps)-si-elle-existe ?


Merci !
 
Re : Range inexistante empeche le code de tourner

Re bonjour Cipic,

passe par une condition:

If corps_source = "" Then
Range("titre_source").Copy
.....
.....
Else: Union(Range("titre_source"), Range("corps_source")).Copy
.....
......
End If

Edit: je présume que corps_source est une variable, dans ce cas, enlève les guillemets en rouge.
Edit2: Idem pour titre_source
 
Dernière édition:
Re : Range inexistante empeche le code de tourner

il me met une 1004 sur la ligne :

Code:
Range("titre_source").Copy

comme quoi "la méthode "Range" de l'objet "_global" a échoué" ...

> si je comprends bien c'est que ma range est considérée comme inexistante elle aussi non ?

Or j'ai bien :

Code:
Dim titre_source As Range
[...]
With Sheets(1)
    Rows("1:2").Select
    ActiveWorkbook.Names.Add Name:="titre1", RefersToR1C1:=Selection
End With
[...]
Set titre_source = Range("titre1")


encore une fois je n'arrive pas à situer mon erreur... A noter que les rows 1 et 2 sont bien selectionnés sur la worksheets(1)
 
Re : Range inexistante empeche le code de tourner

c'est déjà mieux merci beaucoup !!

cependant mes problèmes sont loin d'être réglés :

Code:
Workbooks("Total.xlsx").Worksheets(onglet_source).Activate

me dit que erreur (9) : l'indice ne fait pas partie de la collection...

pourtant onglet_source vaut bien le titre de mon onglet sur Total.xlsx
le fait que d'autres classeurs aient les mêmes onglets peut-il interférer ? (je croyais m'en être prémuni en utilisant l'objet workbooks("total.xlsx")

Cette erreur a interrompu intempestivement mon excel plusieurs fois d'ailleurs...
 
Re : Range inexistante empeche le code de tourner

Bonsoir Cipic, Skoobi

mets peut être la totalité du code utilisé et un petit fichier en pièce jointe, car là pour t'aider faudrait savoir comment sont déclarées tes variables et comment elles sont initialisées... et de plus à quoi correspond les arguments passés... Travailler avec des bouts de code, pas top...
Beaucoup trop de questions pour t'apporter une réponse...

bonne soirée
@+
 
- 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.
Retour