marche puis marche pas!

  • Initiateur de la discussion Initiateur de la discussion fifi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fifi

XLDnaute Occasionnel
bonjour tous,

juste pour savoir ...
j'ai une macro qui fonctionnait correctement et d'un coup elle fait une erreur à une ligne de code qui n'avait pas de pb...

je cherche l'erreur et ne trouve rien de spéciale.

la macro a pour but de copier une plage de cellule et de la coller à un autre amplacement. ceci dans une boucle FOR NEXT.
Y = la hauteur de la sélection
Couleur = la colonne de la sélection
NbImage = le nombre de boucle à faire

l'erreur se situe au niveau de la ligne :
Range(Cells(nbImage + 6 + Y, 1 + Couleur), Cells(nbImage + 6 + Y + 256, 1 + Couleur)).Copy


bref je copie le code ici :

Sub FCT_mise_en_profil()

Sheets('profils').Select

Dim I, Y, nbImage, Couleur, IntervalleLigne, MaxX, MinX As Variant

nbImage = range('I33') 'valeurs de 1 à 250
Y = -259
Couleur = Range('F33') 'valeurs = à 1 , 2 ou 3


For I = 0 To nbImage - 1
Y = Y + 258

Range(Cells(nbImage + 6 + Y, 1 + Couleur), Cells(nbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste

Next I

End Sub
😛inch:



si quelq'un voit l'erreur ..merci
 
bon cette fois ci il n'y avaot pas d'espace mais comme winzip compresse moins que winrar..le fichier faisait 60ko....la galére [file name=shoot.zip size=42908]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/shoot.zip[/file]
 

Pièces jointes

re

Je vois déjà deux petites chose:
1- Pas la bonne référence pour le nom du Graphique;
ActiveSheet.ChartObjects('Chart 3').Activate et non pas:
ActiveSheet.ChartObjects('Graphique 2').Activate

2- Tu n'as pas de série en X, pas sur que c'est un prob encore

je continue !
 
re

Premièrement, j'ai du mettre 0 dans la cellule G35, parce que je ne pointait sur aucune données, donc pas de séries de données dans le graph.

ensuite cette partie du code

Code:
For I = 1 To nbImage
    ActiveChart.SeriesCollection(I).Select

nbImage ne semble pas en armonie avec le nombre de série de données représenté par I

a vérifier de ta part
 
re

autre chose, dans la boucle:
Code:
For I = 0 To nbImage - 1
Y = Y + 258
Range(Cells(nbImage + 6 + Y, 1 + Couleur), Cells(nbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste

Next I

tu as une erreur de clacul pour la longueur de la plage. Lors du passage de I donc 0, la ligne de fin pour la copie est a 296 et qui est du texte ?

a vérifier de ta part aussi.

je suis curieux de savoir comment cela peut arriver que si rien n'as changer tout est de travers ??? 😉


Bon courage !

Message édité par: Hellboy, à: 29/06/2005 16:07
 
re , merci pour ces précisions ...

je vais répondre à tes remarques puis apporter plus d'info sur l'erreur.


1/ erreur de plage de copie effectivement la selection de la plage de copie dépasse le plage des valeurs mais ce n'est pas vraiment grave car ce qui m'interesse c'est de faire un copié collé sans me préocuper des cellules 'vide/text' de la fin de la plage.

2/ En G35 je veux afficher une plage de cellules horizontales se trouvant dasn la matrice devant être créée par la macro..d'ou le vide.
donc tu as bien fait de mettre 0 pour pointer sur au moins l'eindice des colonnes.

3/ effectivement j'avais corrigé le pb plus bas mais pas pour la premiere ligne :
For I = 0 To nbImage - 1


4/le graphique; il y avait 2 graphiques..j'ai supprimé le plus lourd pour gagner en poids lors de l'envoie 😉

j'ai fait quelques tests sur la macro

j'ai mis en commentaire toutes la macro ....sauf une fonction de test

Sub FCT_mise_en_profil()
'commantaires
Cells(1,1).select
'commentaires
End sub

et ca plante sur la méthode de l'objet!!!
si je crée une autre macro dans un classeur neuf ca plante pas!
 
bon j'ai trouvé ... 🙁

le pb venais pas de la formule...mais de la position de ces 2 lignes :

ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select

placées avec une boucle FOR .


donc ce code ne marche pas :
-----------------------------------------------------------------------
Dim I, Y, MaxX, NbImage, Couleur, MinX As Variant
NbImage = 35
Y = -259
MaxX = Range('I35')
MinX = Range('I36')
Couleur = Range('F33')

'''''''''trace et formatage graph

ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select

For I = 1 To NbImage

ActiveChart.SeriesCollection(I).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 2
.Shadow = False
End With
Next I

For I = 0 To 35 'nbImage - 1
Y = Y + 258
Cells(1, 1).Select

Range(Cells(NbImage + 6 + Y, 1 + Couleur), Cells(NbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste
end sub
----------------------------------------------------------



celui là fonctionne
--------------------------------------------------------
Dim I, Y, MaxX, NbImage, Couleur, MinX As Variant
NbImage = 35
Y = -259
MaxX = Range('I35')
MinX = Range('I36')
Couleur = Range('F33')

'''''''''trace et formatage graph

ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select

For I = 1 To NbImage

ActiveChart.SeriesCollection(I).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 2
.Shadow = False
End With
Next I
'''''''''''''''''''''''''''''''''''''''
For I = 0 To 35 'nbImage - 1
Y = Y + 258
Cells(1, 1).Select

Range(Cells(NbImage + 6 + Y, 1 + Couleur), Cells(NbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste
end sub
------------------------------------------------------------------------

bizard je vois pas pourquoi ..enfin il n'y a pas de raison
 
oups deux fois le copié collé identique dsl
bon j'ai trouvé ...

le pb venais pas de la formule...mais de la position de ces 2 lignes :

ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select

placées avec une boucle FOR .


donc ce code ne marche pas :
-----------------------------------------------------------------------
Dim I, Y, MaxX, NbImage, Couleur, MinX As Variant
NbImage = 35
Y = -259
MaxX = Range('I35')
MinX = Range('I36')
Couleur = Range('F33')

'''''''''trace et formatage graph

ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select

For I = 1 To NbImage

ActiveChart.SeriesCollection(I).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 2
.Shadow = False
End With
Next I

For I = 0 To 35 'nbImage - 1
Y = Y + 258
Cells(1, 1).Select

Range(Cells(NbImage + 6 + Y, 1 + Couleur), Cells(NbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste
end sub
----------------------------------------------------------



celui là fonctionne
--------------------------------------------------------
Dim I, Y, MaxX, NbImage, Couleur, MinX As Variant
NbImage = 35
Y = -259
MaxX = Range('I35')
MinX = Range('I36')
Couleur = Range('F33')

'''''''''trace et formatage graph

For I = 1 To NbImage
ActiveSheet.ChartObjects('Graphique 2').Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(I).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 2
.Shadow = False
End With
Next I
'''''''''''''''''''''''''''''''''''''''
For I = 0 To 35 'nbImage - 1
Y = Y + 258
Cells(1, 1).Select

Range(Cells(NbImage + 6 + Y, 1 + Couleur), Cells(NbImage + 6 + Y + 256, 1 + Couleur)).Copy

Cells(40, 6 + I).Select
ActiveSheet.Paste
end sub
------------------------------------------------------------------------

bizard je vois pas pourquoi ..enfin il n'y a pas de raison
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
728
Réponses
5
Affichages
614
Réponses
4
Affichages
557
Réponses
0
Affichages
652
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
902
Retour