probleme d'attribution de variable - erreur 91

Cipic

XLDnaute Nouveau
Bonjour,

je suis ennuyé car débutant en vba, je lutte sur des choses simples au lieu d'avancer...

Code:
Sub Principale()

  Dim titre_source As Object
  Dim titre1 As Object

  [...]

  With Sheets(1)
      Rows("1:2").Select
      ActiveWorkbook.Names.Add Name:="titre1", RefersToR1C1:=Selection
  End With

  [...]

  titre_source = titre1
  Call Copier(titre_source)

End Sub


J'ai integré une sous-routine de copie avec destination à ma routine principale.
Je souhaite donc utiliser cette sous-routine avec une valeur "titre_source" que je préciserai à chaque fois avant d'appeller ma sous-routine Copier.

Mais le vbe me renvoie une erreur d'éxecution (91) au niveau
Code:
titre_source = titre1

"Variable objet ou Variable de bloc With non définie"

J'ai essayé en rajoutant un "titre1 = selection" juste avant la nomination, mais dans ce cas l'erreur passe sur cette ligne.

Quel est le problème dans mon code ? Merci bcp
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : probleme d'attribution de variable - erreur 91

Bonjour cipic, Romain:)

une autre proposition, si j'ai bien compris :

Code:
Sub test()
Dim titre_source As Range
Set titre_source = Range("titre1")
Call copier(titre_source)
End Sub

Sub copier(masource As Range)
'ton code
End Sub

bon après midi
@+
 

Cipic

XLDnaute Nouveau
Re : probleme d'attribution de variable - erreur 91

Merci pour l'aide, déjà. Mais....

ouiiiiiiiiiin je comprends pas d'ou viennent mes erreurs...

Code:
Sub test()
Dim titre_source As Range
Dim classeur_cible As String
Dim onglet_cible As String

DateJourRU = Format(Now, "dd-mm-yy")
nom = "BEF-"
With Sheets(1)
    Rows("1:2").Select
    ActiveWorkbook.Names.Add Name:="titre1", RefersToR1C1:=Selection
End With

    onglet_source = onglet1
    Set titre_source = Range("titre1")
    classeur_cible = nom & DateJourRU
    onglet_cible = onglet1
    
Call copier(onglet_source, titre_source, classeur_cible, onglet_cible)
End Sub

avec
Code:
Sub copier(onglet_source As String, titre_source As Range, corps_source As Range, classeur_cible As String, onglet_cible As String)
    
    Workbooks("Total.xlsx").Activate
    Worksheets(onglet_source).Select
    Union(Range("titre_source"), Range("corps_source")).Copy
    Workbooks("classeur_cible").Worksheets("onglet_cible").Cells.Paste
    Workbooks("classeur_cible").Save

End Sub


On me dit comme quoi mon "classeur_cible est de type incompatible..." pourtant il est dimensionné comme string dans la routine 1 et attendu comme string dans la sous-routine...

Je perds ma logique...


Merci
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 156
Messages
2 085 815
Membres
102 991
dernier inscrit
remyexcel