Niark-Niark | 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 :
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
|
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 |