Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1391 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection d'une cellule d'un autre classeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection d'une cellule d'un autre classeur

n°1830762
Niark-Niar​k
Posté le 23-12-2008 à 12:19:11  profilanswer
 

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   :jap: ) , 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 :
  1. Private Sub CommandButton1_Click()
  2. '###Déclaration de toute les variables###
  3. Dim j As String
  4. Dim i As Integer
  5. Dim numsem As Integer
  6. Dim haff As Variant
  7. Dim nom As String
  8. Dim k As Integer
  9. '###mise des valeurs des variables connu###
  10. numsem = Range("S1" )
  11. nom = Range("C1" )
  12. k = 6
  13. '###ouverture du 2ème classeur###
  14. Workbooks.Open "C:\Documents and Settings\els\Bureau\Gestion affaires.xls"
  15. '###boucle pour les 20 affaires###
  16. For i = 1 To 20
  17. 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)###
  18. j = "N°" & i '###le nom des onglets du classeur affaire est N°1, N°2, ...###
  19. haff = Range("C" & i + 99) '###je mets en variable le nombre d'heure correspondant a l'affaire n°i###
  20. '###j'active le classeur affaires###
  21. Workbooks("Gestion affaires.xls" ).Worksheets(j).Activate
  22. '###Et c'est là que j'ai une magnifique erreur 1004 : "Erreur définie par l'application ou par l'objet"###
  23. Range("A6" ).End(xlDown).Offset(0, 1).Select
  24. '###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...
  25. 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###
  26. ActiveCell = nom
  27. ActiveCell.Offset(0, 1).Select
  28. ActiveCell = numsem
  29. ActiveCell.Offset(0, 1).Select
  30. ActiveCell = haff
  31. End If
  32. Next
  33. '###pas encore tester la prochaine ligne, je m'occupe d'abord du problème ###
  34. 'Workbooks("Gestion affaires.xls" ).Close
  35. MsgBox "Feuille d'affaire mis à jour"
  36. 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

mood
Publicité
Posté le 23-12-2008 à 12:19:11  profilanswer
 

n°1830876
seniorpapo​u
Posté le 23-12-2008 à 15:19:10  profilanswer
 

Bonjour,
essayer avec:
ActiveSheet.Range("A6" ).End(xlDown).Offset(0,1).Select
Cordialement

n°1830906
Niark-Niar​k
Posté le 23-12-2008 à 16:12:41  profilanswer
 

Merci bcp ! c'est pas encore gagner mais c'est un grand pas!  :)  
 
Je n'ai plus d'erreur 1004, plus d'erreur du tout d'ailleurs.
 
Par contre ça me copie les trucs à la dernière ligne et pas dans la bonne colonne (B65536, C65536 et D65536 au lieu de A6, B6 et C6)  :D  
 
En tout cas mnt que j'ai plus cette erreur, je vais bidouiller un peu pour essayer d'arriver à qqc, merci encore  ;)  
 
Je vous tiens rapidement au courant.

n°1830914
Niark-Niar​k
Posté le 23-12-2008 à 16:26:51  profilanswer
 

Ca y est ! Cette fois c'est bon !
 
Pour ce qui est de la ligne 65536, c'était logique, étant donné d'aller à la case suivante de la dernière cellule non vide... mais étant que le tableau était vide, forcement ça posait problème (donc j'ai inclu le titre à l'intérieur, et mnt ça marche).  :D  
 
Pour la colonne de décalage... c'est simplement une inversion entre Offset(1, 0) et Offset(0, 1)  :ange:  
 
En tout cas merci bcp  ;)  
 
Bonne soirée


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection d'une cellule d'un autre classeur

 

Sujets relatifs
problème sélection dans un intervalle en sqlCompter le nombre de selection faite sur un select
JTable selection cellule coloréeFormule référence autre classeur...
Selection Tailles (simplifié) SQL [RESOLU][resolu] alignement cellule dans tableau HTML
URL d'arriere plan dans cellule in-ca-la-bleCréer une liste à plusieurs sélection unique sans appuis sur la touche
recupérer filtre par selection pour filtrer un etat 
Plus de sujets relatifs à : Selection d'une cellule d'un autre classeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR