Range inexistante empeche le code de tourner

Cipic

XLDnaute Nouveau
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 !
 

skoobi

XLDnaute Barbatruc
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:

Cipic

XLDnaute Nouveau
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)
 

Cipic

XLDnaute Nouveau
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...
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 472
Messages
2 088 715
Membres
103 932
dernier inscrit
clotilde26