NiarkNiark
XLDnaute Nouveau
Bonjour à tous.
Je débute en VBA et je bloque sur une petite erreur.
En fait voilà, j'ai 2 classeurs (enfin plutôt une vingtaine, mais c'est une autre histoire 😛) , l'un regroupe les affaires en cours (avec nombres d'heures de chacun, des graphiques, ...) et l'autre est une feuille d'heure hebdomadaire.
Mon classeur des affaires en cours est déjà faite (avec aussi pas mal de VBA mais avec du temps et pas mal d'essai, mais au final elle fonctionne...). Il y a une feuille par affaires. Par contre mnt je veux la remplir automatiquement avec le classeur d'heures. Et c'est là qu'arrive les problèmes...
Donc j'ai fait ma feuille avec toutes les infos que je dois envoyer sur l'autre (nom, numéro de la semaine et nombres d'heure pour chaque affaires (max 20 affaires). Et j'ai donc crée un bouton de commande pour lancer la macro et envoyer tout ça.
Passons mnt au code :
Toute la matinée j'ai tester pas mal de solution mais rien n'y fait...
Voilà, donc si vous avez la moindre idée, n'hésitez pas 😉
Merci et bonne journée
Je débute en VBA et je bloque sur une petite erreur.
En fait voilà, j'ai 2 classeurs (enfin plutôt une vingtaine, mais c'est une autre histoire 😛) , l'un regroupe les affaires en cours (avec nombres d'heures de chacun, des graphiques, ...) et l'autre est une feuille d'heure hebdomadaire.
Mon classeur des affaires en cours est déjà faite (avec aussi pas mal de VBA mais avec du temps et pas mal d'essai, mais au final elle fonctionne...). Il y a une feuille par affaires. Par contre mnt je veux la remplir automatiquement avec le classeur d'heures. Et c'est là qu'arrive les problèmes...
Donc j'ai fait ma feuille avec toutes les infos que je dois envoyer sur l'autre (nom, numéro de la semaine et nombres d'heure pour chaque affaires (max 20 affaires). Et j'ai donc crée un bouton de commande pour lancer la macro et envoyer tout ça.
Passons mnt au code :
Code:
Private Sub CommandButton1_Click()
'###Déclaration de toute les variables###
Dim j As String
Dim i As Integer
Dim numsem As Integer
Dim haff As Variant
Dim nom As String
Dim k As Integer
'###mise des valeurs des variables connu###
numsem = Range("S1")
nom = Range("C1")
k = 6
'###ouverture du 2ème classeur###
Workbooks.Open "C:\Documents and Settings\els\Bureau\Gestion affaires.xls"
'###boucle pour les 20 affaires###
For i = 1 To 20
If Range("C" & i + 99) > 0 Then '###C'est sur des cellules libre que j'ai fait la somme des heures pour chaque affaire (avec un SOMME.SI)###
j = "N°" & i '###le nom des onglets du classeur affaire est N°1, N°2, ...###
haff = Range("C" & i + 99) '###je mets en variable le nombre d'heure correspondant a l'affaire n°i###
'###j'active le classeur affaires###
Workbooks("Gestion affaires.xls").Worksheets(j).Activate
'###Et c'est là que j'ai une magnifique erreur 1004 : "Erreur définie par l'application ou par l'objet"###
Range("A6").End(xlDown).Offset(0, 1).Select
'###Alors que si j'enlève la ligne précédente, ca ouvre le classeur, et ça mets ce que je veux dans les bon onglets (mais par contre la cellule selectionné est la même que quand on avait fermé le classeur la dernière fois...
J'ai essayer aussi avec juste le Range("A6"), ou même cells(6,1), mais rien n'y fait, tjs la même erreur###
ActiveCell = nom
ActiveCell.Offset(0, 1).Select
ActiveCell = numsem
ActiveCell.Offset(0, 1).Select
ActiveCell = haff
End If
Next
'###pas encore tester la prochaine ligne, je m'occupe d'abord du problème ###
'Workbooks("Gestion affaires.xls").Close
MsgBox "Feuille d'affaire mis à jour"
End Sub
Voilà, donc si vous avez la moindre idée, n'hésitez pas 😉
Merci et bonne journée