OVH Cloud OVH Cloud

pb d'addresse

5 réponses
Avatar
Misange
Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

5 réponses

Avatar
isabelle
hello Flo,

peux être en créeant un objet,

For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
set plg = Sheets(Feuille.Name)
..
range("[new.xls]milieux!D2").value= = plg.range(feuille!A26).value
set plg = nothing

isabelle


Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Avatar
Misange
merci Isabelle
C'est tout bon. J'avais essayé avec un set mais j'avais du faire une
c... quelque part!

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 09/04/2004 15:08:
hello Flo,

peux être en créeant un objet,

For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
set plg = Sheets(Feuille.Name)
..
range("[new.xls]milieux!D2").value= = plg.range(feuille!A26).value
set plg = nothing

isabelle


Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta




Avatar
Misange
re hello Isabelle
En fait j'ai répondu trop vite (mais bizarement ça a fonctionné une fois...)
ca coince sur le set.
J'ai essayé plein de variantes mais j'ai toujours une erreur : soit
l'indice n'appartient pas à la sélection, soit incompatibilité de type.
Une idée de plus ?

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 09/04/2004 15:08:
hello Flo,

peux être en créeant un objet,

For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
set plg = Sheets(Feuille.Name)
..
range("[new.xls]milieux!D2").value= = plg.range(feuille!A26).value
set plg = nothing

isabelle


Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta




Avatar
michdenis
Bonjour Misange,

Et ceci : à adapter

'------------------------------------
Sub CopierDonnées()

Dim F As Worksheet, Af As Worksheet
Dim Rg As Range, B As Long

'Af = Feuille du classeur où seront copiées les données
Set Af = Workbooks("Classeur1.xls").Worksheets("Feuil1")

'Boucle sur toutes les feuilles du classeur
'dans lequel cette macro est écrite.
For Each F In ThisWorkbook.Worksheets
If Left(F.Name, 5) = "Feuil" Then
'Une boucle sur une plage quelconque
For Each c In F.Range("A1:A10")
If c.Value = 10 Then
B = B + 1
Af.Range("A" & B) = c.Value
End If
Next
End If
Next

Set F = Nothing: Set Af = Nothing
End Sub
'------------------------------------


Salutations!



"Misange" a écrit dans le message de news:elF$
re hello Isabelle
En fait j'ai répondu trop vite (mais bizarement ça a fonctionné une fois...)
ca coince sur le set.
J'ai essayé plein de variantes mais j'ai toujours une erreur : soit
l'indice n'appartient pas à la sélection, soit incompatibilité de type.
Une idée de plus ?

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 09/04/2004 15:08:
hello Flo,

peux être en créeant un objet,

For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
set plg = Sheets(Feuille.Name)
..
range("[new.xls]milieux!D2").value= = plg.range(feuille!A26).value
set plg = nothing

isabelle


Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta




Avatar
Misange
Merci Denis, je regarde cela mardi au labo ;-

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Bonjour Misange,

Et ceci : à adapter

'------------------------------------
Sub CopierDonnées()

Dim F As Worksheet, Af As Worksheet
Dim Rg As Range, B As Long

'Af = Feuille du classeur où seront copiées les données
Set Af = Workbooks("Classeur1.xls").Worksheets("Feuil1")

'Boucle sur toutes les feuilles du classeur
'dans lequel cette macro est écrite.
For Each F In ThisWorkbook.Worksheets
If Left(F.Name, 5) = "Feuil" Then
'Une boucle sur une plage quelconque
For Each c In F.Range("A1:A10")
If c.Value = 10 Then
B = B + 1
Af.Range("A" & B) = c.Value
End If
Next
End If
Next

Set F = Nothing: Set Af = Nothing
End Sub
'------------------------------------


Salutations!



"Misange" a écrit dans le message de news:elF$
re hello Isabelle
En fait j'ai répondu trop vite (mais bizarement ça a fonctionné une fois...)
ca coince sur le set.
J'ai essayé plein de variantes mais j'ai toujours une erreur : soit
l'indice n'appartient pas à la sélection, soit incompatibilité de type.
Une idée de plus ?

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 09/04/2004 15:08:

hello Flo,

peux être en créeant un objet,

For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
set plg = Sheets(Feuille.Name)
..
range("[new.xls]milieux!D2").value= = plg.range(feuille!A26).value
set plg = nothing

isabelle



Coucou,
Je parcours en VBA les différentes feuilles d'un classeur (ouvert) pour
récupérer certaines valeurs dans un autre classeur
Ca donne quelque chose comme ça :
For Each Feuille In Workbooks("truc.xls").Worksheets
If Left(Feuille.Name, 3) = "cc#" Then
...

Le pb ensuite, sur la feuille d'arrivée, dans le nouveau classeur, c'est
de faire référence à la feuille en question. Genre
range("[new.xls]milieux!D2").value= = range([truc.xls]feuille!A26).value
qui est une syntaxe typiquement volatile dans le sens qu'elle s'évapore
avant même qu'elle soit lue...
Que faut-il écrire ???
merci d'avance

--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta