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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème de sélection de feuille excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de sélection de feuille excel

n°1343929
Tyl_29
Posté le 11-04-2006 à 11:32:17  profilanswer
 

Bonjour,
 
J’ai un classeur Excel qui contient plusieurs feuilles, le nombre n’est pas fixe. J’aimerai copier une zone de chacune de ces feuilles dans une dernière (qui est dans le même classeur).
(Je préviens que je ne suis pas une star en programmation)
[size=2]  
[/size]Je récupère le nombre de feuilles par Sheets.count. J’appelle cette variable Nbfeuil
J’ai besoin de sélectionner mes feuilles sources de données une par une. J’aimerai bien faire une boucle du genre :
Pour i = 1 à (Nbfeuil – 1) faire
‘ – 1 c’est parce que ma dernière feuillé c’est celle où je copie mes données.
[size=2]            Copier la zone qui va bien de la feuille 1
[/size][size=2]            Coller dans la feuille nombre de feuille
[/size]Next
[size=2]  
[/size]Ca donne ça :
[size=2]    a=0
[/size][size=2]    For i = 1 To (nbfeuil - 1) Step 1
[/size][size=2]        Sheets(i).Rows(6, a).Copy
[/size][size=2]        Sheets(nbfeuil).Rows(6 + a).Paste
[/size][size=2]        a=a+a
[/size][size=2]    Next
[/size][size=2]  
[/size]Mon truc avec la variable a c’est parce que normalement je récupère la longueur de la zone dans une cellule de chaque feuille.
Je reçois comme message d’erreur : Erreur d’exécution 1004, Erreur définie par l’application ou par l’objet.
Je ne sais si c’est un problème avec l’adressage de mes feuilles sheets(_) ou si c’est mon utilisation du mode de copie ou autre chose.
Je crains que ce soit vraiment tout bête mais. Je vois pas.
J'espère avoir été clair?
[size=2]  
[/size]Merci pour votre aide.
[size=2]  
[/size]Tyl
 

mood
Publicité
Posté le 11-04-2006 à 11:32:17  profilanswer
 

n°1343932
Tyl_29
Posté le 11-04-2006 à 11:37:22  profilanswer
 

désolé pour les balises... J'avais tapé sou word, je referait plus.
 
Tyl

n°1344591
Epena
Posté le 11-04-2006 à 22:54:10  profilanswer
 

Je pense que l'erreur vient de cette ligne :

Sheets(i).Rows(6, a).Copy


qui doit s'écrire :

Sheets(i).Rows(6 + a).Copy


Cordialement
Epéna

n°1344648
galopin01
Posté le 12-04-2006 à 00:53:32  profilanswer
 

bonjour,
Sur le fond l'erreur vient bien de là mais de plus, il y a un problème sur la valeur de "a" :  
comme tu le présentes, a = 0 pendant toute ta procédure. (0 + 0 = 0 ! )
Quand tu donnes du code, tu recopies directement (et intégralement) ton code depuis VBA (par Copier/Coller), parce que s'il y a des erreurs de codes + des erreurs de traduction + des erreurs de frappe ou/et des oublis, on risque de comprendre ce que tu n'as pas voulu dire et de te répondre quelque chose que tu ne comprendras pas !
 
Il n'y a rien qui ressemble plus à une erreur de code qu'un code incomplet...
Alors autant écrire en braille...  :D  
A+


---------------
roger
n°1344695
Tyl_29
Posté le 12-04-2006 à 08:37:46  profilanswer
 

Merci pour les réponses,
 
Je vais essayer de ne plus écrire en langage cunéiforme et d'être plus clair.
 
D'abord voilà le copier/coller de mon code:
 
    Dim nbfeuil As Integer
    Dim i As Integer
    Dim pas As Integer
     
    nbfeuil = Sheets.Count
    pas = 0
     
    For i = 1 To (nbfeuil - 1) Step 1
        Sheets(i).Rows(6, Sheets(i).Cells(3, 1)).Copy
        Sheets(nbfeuil).Rows(6, Sheets(i).Cells(3, 1) + pas).Paste
        pas = Sheets(i).Cells(3, 1) + pas
    Next
 
Dans chacune des feuilles il y a dans la cellule (3,1) le numéro de le dernière ligne du tableau de donnée.
C'est pour ça que j'avais écrit rows(6, sheets(i).cells(3,1)).copy  
Je voudrais copier la zone de la ligne 6 à la ligne sheets(i).cells(3,1)
 
J'espère être plus clair.
 
Lorsque j'écris Sheets(i).Rows(6 + Sheets(i).Cells(3, 1)).Copy il ne me met plus erreur 100' défine par l'application ou par l'objet mais il copie une seule ligne et pas la plage de ligne.
De plus, lorsque j'écris Sheets(nbfeuil).Rows(6 + Sheets(i).Cells(3, 1) + pas).Paste j'obtiens une erreur 438 propriété ou méthode non gérée par l'objet.
 
J'ai essayé de remplacer la sélection de lignes par une plage range mais même problème.
 
Est-ce que j'aurai pas un soucis au niveau de paste, par rapport à la taille de la zone copiée et celle collée?
 
Toujours est-il que j'ai toujours un problème et qu'un peu d'aide me serait encore d'une grande utilité.
 
Merci encore.
 
Yann


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

  Problème de sélection de feuille excel

 

Sujets relatifs
Problème avec exec(): lancement d'un processusProblème pour déclaration d'un champ auto increment
Probleme script Upload [résolu]Problème récupération Valeur de variable
[Résolu]Comment activer une application Excel qui change de nomproblème avec le signe supérieur
[PHP][XSLT][entity] Problème avec les Entities ...[Résolu]Problème avec un script de dockbar type mac OS
probleme de rafraichissement de l affichage sous firefoxproblème avec la commande "connect to"
Plus de sujets relatifs à : Problème de sélection de feuille excel


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