Salut à tous !!
Caramba encore du classique et une question de débutant ...!
En gros je n'arrive pas à référencer mon classeur et son onglet dans une variable .
je n'aie pas été bien loin c'est la 3 ème ligne de code qui plante ....
.
En gros pas moyen de mettre le classeur "ETUDE C.T.R" dans une variable ...
NB:- Le but de mon prog est de scanner ligne à ligne un fichier d'en retirer 3 variables : le numéro de dossier , le nb de niveaux et la surface et d'envoyer c'est 3 informations dans un 2 ème classeur afin de le mettre à jour .
- le 2 ème classeur n'est pas joint parce que je n'aie pas les droits dessus ...
Caramba encore du classique et une question de débutant ...!
En gros je n'arrive pas à référencer mon classeur et son onglet dans une variable .
Code:
Sub Misajour()
Dim i, numdedossier, nbdeniveaux, surface As Integer
Dim gesaf As Excel.Workbook
Set gesaf = Application.Workbook("ETUDES C.T.R").Worksheets("ETUDE C.T.R")
' Set gesaf = ThisWorkbook.Worksheets("ETUDE C.T.R")
ChDir "C:\Documents and Settings\profil\Mes documents"
Workbooks.Open Filename:= _
"C:\Documents and Settings\profil\Mes documents\Oméga_Suivi.xls"
Application.Run "Oméga_Suivi.xls!affetd"
Application.Run "Oméga_Suivi.xls!fillst"
With gesaf
For i = 1 To .Range("A65536").End(xlUp).Row
numdossier = Cells(i, 3).Value 'retire le numéro de dossier
nbdeniveaux = Cells(i, 5).Value 'retire le nbdeniveaux
surface = Cells(i, 6).Value 'retire la surface
' à présent il s'agit de l'envoyer dans le fichier Oméga_suivi.xls
Windows("Oméga_Suivi.xls").Activate
If numdossier <> "" Then
Selection.AutoFilter Field:=1, Criteria1:="=" & numdossier, Operator:=xlAnd 'une recherche tres rapide grace aux filtres
Cells.Find(What:=numdossier, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate 'cette recherche sert à activer la case contenant le numéro de dossier
'et prepare ainsi l'écriture dans la fiche correspondante
Application.Run "Oméga_Suivi.xls!ecr_fiche"
Range("F33").Select
ActiveCell.FormulaR1C1 = nbdeniveaux
Range("G33").Select
ActiveCell.FormulaR1C1 = "2"
Range("H33").Select
ActiveCell.FormulaR1C1 = surface
Range("H34").Select
Application.Run "Oméga_Suivi.xls!vld_fiche" 'enregistre la modification
Application.Run "Oméga_Suivi.xls!ret_list" 'pour retourner à la liste des dossiers
Windows("ETUDES C.T.R.xls").Activate 'retourne dans le fichier ETUDES C.T.R.xls pour choper
'le prochain numéro de dossier
End If
Next i
End With
End Sub
je n'aie pas été bien loin c'est la 3 ème ligne de code qui plante ....
Code:
Set gesaf = Application.Workbook("ETUDES C.T.R").Worksheets("ETUDE C.T.R")
En gros pas moyen de mettre le classeur "ETUDE C.T.R" dans une variable ...
NB:- Le but de mon prog est de scanner ligne à ligne un fichier d'en retirer 3 variables : le numéro de dossier , le nb de niveaux et la surface et d'envoyer c'est 3 informations dans un 2 ème classeur afin de le mettre à jour .
- le 2 ème classeur n'est pas joint parce que je n'aie pas les droits dessus ...