Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille ?

thom02

XLDnaute Junior
Bonjour,

Je cherche à faire une boucle sur des feuilles mais je n'arrive à le faire entrer sur la feuille que je veux....


Code:
Dim strTab As Worksheet
Dim nom As String

(La boucle porte sur le i... )    

    nom = Feuil49.Range("A" & i)
    Set strTab = ThisWorkbook.Worksheets(nom)

Aucune valeur n'est attribuée à "strTab" du coup mon appel de fonction suivant qui se fait sur cette feuille ne s'effectue pas

Code:
hisWorkbook.Sheets(strTab.Range(RechercheCoordoneesFin(Feuil49.Range("A" & i)))).Copy


je m'arrache les cheveux j'en peux plus :mad:

un grand merci pour votre aide :)
 

James007

XLDnaute Barbatruc
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

Bonjour,

Je t'avoue que pour déchiffrer le fil de ta pensée, avec ces bribes de code ... ce n'est pas très évident ...

Que se passerait-il si ta variable strTab était déclarée en String ...
puisque tu dois reconstituer son nom ...
et que tu ajustais ton code ...

A +
:)
 

thom02

XLDnaute Junior
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

merci pour votre réactivité voici plus de détails...

le but est que je voudrais qu'il fasse un Copie/Coller d'une sélection dont il récupere :
- le nom de la feuille en ("A" & i) de la feuille 49
- les coordonnées range via RechercheCoordoneesFin (function qui fonctionne impec et renvoi en string les coordonnées).

Il doit faire ce copier coller pour chaque feuille dont il trouvera le nom en ("A" & i) de la feuille 49

Ce copier coller doit s’effectuer dans word sous le signet Test. Qui s’incrémente à chaque fois ?
Est ce un peu plus clair ?

Un tout grand merci !!!




Code:
Dim ObjWord As Word.Application
Dim LeDocWord As Word.Document
Dim i As Integer
Dim iInit As Integer
Dim iBlock As Integer
Dim strTab As Worksheet
Dim nom, test As String

iInit = 6
i = iInit
iBlock = 1


Do While FeuilleExiste(Feuil49.Range("A" & i)) And i < 39
    Set strTab = Nothing
    nom = Feuil49.Range("A" & i)
     strTab.Name = nom
    ThisWorkbook.Sheets(strTab.Range(RechercheCoordoneesFin(Feuil49.Range("A" & i)))).Copy
    
    LeDocWord.Bookmarks("TEST" & iBlock).Range.PasteSpecial Link:=False
    Call ViderLePressePapier
    i = i + 1
    iBlock = iBlock + 1
Loop
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

Re,

modifie peut être ainsi, sans conviction ....
Code:
Do While FeuilleExiste(Feuil49.Range("A" & i)) And i < 39
    nom = Feuil49.Range("A" & i)
    Set strTab = Sheets(nom)
    ThisWorkbook.Sheets(strTab.Range(RechercheCoordoneesFin(Feuil49.Range("A" & i)))).Copy
    LeDocWord.Bookmarks("TEST" & iBlock).Range.PasteSpecial Link:=False
    Call ViderLePressePapier
    Set strTab = Nothing
    i = i + 1
    iBlock = iBlock + 1
Loop
 

thom02

XLDnaute Junior
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

bingo !!!

merci Pierrot après un bol d'air et en repartant de ton code j'ai trouvé et ca fonctionne !!

Reste plus qu'à trouver comment faire un "saut de page" à chaque nouveau copier/coller.


merci
 

James007

XLDnaute Barbatruc
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

Re,

Pour insérer un saut de page, tu peux essayer ce code :
Code:
With LeDocWord.Paragraphs(wdDoc.Paragraphs.Count).Range
            .InsertParagraphBefore
            .Collapse Direction:=wdCollapseEnd
            .InsertBreak Type:=wdPageBreak
End With

A +
:)
 

thom02

XLDnaute Junior
Re : Erreur dans l'affectation du feuille ou comment déclarer/identifier ma feuille

Merci James pour ton idée mais comment l"integrer avec mes signet ("Test"&i) qui sont déjà dans mon word à l'un en dessous de l'autre?

un grand merci !!
 

Discussions similaires

Statistiques des forums

Discussions
312 248
Messages
2 086 596
Membres
103 252
dernier inscrit
Ersar