cs_miss07
Messages postés77Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention21 juin 2007
-
21 juin 2007 à 10:28
cs_miss07
Messages postés77Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention21 juin 2007
-
21 juin 2007 à 11:56
Bonjour à tous !
Voila j'ai un petit soucis ! je vous explique.
En gros j'ai un dictionnaire qui contient des noms et à ces noms sont associés un workbook.
j'aimerai créer un pointeur qui pointe sur le workbook que je desire.
voila mon code.
dim OD_Nom as dictionary
dim WB_Sortie as workbook
dim Pointeur as workbook
dim i as long
for i = 2 to 100
if not OD_Nom.exists(thisworkbook.worksheets(1).cells(i,"A").value) then
set WB_Sortie = workbook.add
OD_Nom.add thisworkbook.worksheets(1).cells(i,"A").value, WB_Sortie
else
'et donc c'est la que je dois créer un pointeur sur le workbook associé au nom
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202175 21 juin 2007 à 10:50
un peu comme les dictionary, en fait....
ce genre de choses :
Dim OD_Nom As Collection
Dim oRef As workbook
Dim i As Long
Dim sName As String
Set OD_Nom = New Collection
For i = 2 To 100
Set oRef = Nothing
sName = ThisWorkbook.Worksheets(1).cells(i, "A").Value
On Error Resume Next
Set oRef = OD_Nom(sName)
On Error GoTo 0
If oRef Is Nothing Then
Set oRef = workbook.Add
OD_Nom.Add oRef, sName
Else
With ThisWorkbook.Worksheets("TEMP")
.Activate
.Select
.Rows(i & ":" & i).Select
End With
Selection.Copy
With oRef.Worksheets(1)
.Activate
.Select
.Rows(L_derniere_ligne & ":" & L_derniere_ligne).Select
End With
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next i
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 21 juin 2007 à 10:37
Salut,
Note: ca ne ressemble pas à du .NET tout ca...
Pas mieux utilises une collection dans laquelle tu ajoute tes objets WorkBook et qui sera indéxée par le nom du WorkBook
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 21 juin 2007 à 10:56
Salut,
Bon ben a la bourre le JUJU mais bon je propose tout de meme ceci on sait jamais (j'ai pas testé)
Dim MCol As New Collection
Dim Pointeur As Workbook
Dim i As Long
Dim MonClasseur As Workbook
Set MonClasseur = ThisWorkbook
For i = 2 To 100
On Error Resume Next
Call MCol.Add(Workbooks.Add, MonClasseur.Worksheets(1).Range("A" & CStr(i)).Value)
On Error GoTo 0
Set Pointeur = MCol(MonClasseur.Worksheets(1).Range("A" & CStr(i)).Value)
MonClasseur.Worksheets("TEMP").Rows(i & ":" & i).Copy
With Pointeur
.Worksheets(1).Activate
.Worksheets(1).Select
.Worksheets(1).Rows(L_derniere_ligne & ":" & L_derniere_ligne).Select
End With
Selection.PasteSpecial Range.PasteSpecial(xlValues, xlNone, False, False)
cs_miss07
Messages postés77Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention21 juin 2007 21 juin 2007 à 11:18
et j'ai essayé avec le code jrivet il me dit la mm chose sur cette ligne la
Set Pointeur = MCol(MonClasseur.Worksheets("TEMP").Range("H" & CStr(i)).Value)
cs_miss07
Messages postés77Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention21 juin 2007 21 juin 2007 à 11:56
oui merci !! j'espere ne plus avoir de soucis ! je redoute la sauvegarde de chaque classeur mais je pense pouvoir m'en sortir!
Merci encore a vous deux !!