OVH Cloud OVH Cloud

Macro Excel bug ?

3 réponses
Avatar
Troxsa
Bonjour a tous



J'ai fait une macro dans l'événementiel de la feuil2

Elle ne fonctionne pas quand je sélectionne ma feuil2 (clic)



Le premier Bug que je rencontre

C'est qu'il ne fait pas le "Cells.Select"



Sheets("Feuil1").Select
Cells.Select
Selection.Copy



Le deuxième bug est, le "Sheets("Feuil2").Select"

C'est complément normal que la macro tourne en boucle

Mais je ne sais pas comment faire pour sauter cette étape



'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select



--------La macro complete---------------

Dim i As Double
Dim intNbLigne As Integer

ActiveSheet.Unprotect
'Il selectionne la feuil Vlans
Sheets("Feuil1").Select
'On conte les lignes dans la feuil Feuil1
intNbLigne = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Sheets("Feuil1").Select
Cells.Select
Selection.Copy

'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select
ActiveSheet.Paste
Sheets("Feuil2").Select
Range("A1").Select
For i = 1 To intNbLigne
Cells(i, 9).Formula = "=Somme" & "(" & "D" & i & ")"
Next i

'Filtre plus triage par orde croissant

Selection.AutoFilter Field:=9, Criteria1:="<> ", Operator:=xlAnd
Columns("I:I").Select
Range("A1:I426").Sort Key1:=Range("I1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
'Protection de la feuil
ActiveSheet.Protect DrawingObjects:=False, Contents:=True,
Scenarios:=True
End Sub

------------Fin--------------------



Avez vous une idée ?

Merci par avance toute solution



Bonne journée a tous

A bientôt

3 réponses

Avatar
Michel Gaboly
Bonhjour,

Dans le code complet, tu as à la suite :

' On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select

Le Sheets.Select ne semble pas logique : selon le commen-
taire, on retourne en Feuille 2, mais immédiatement après,
il y a une instruction qui sélectionne TOUTES les feuilles,
et la feuille 2 n'est pas forcément la feuille active.

Par ailleurs évite autant que possible les Select : la plu-
part du temps, ils ne servent qu'à ralentir le traitement :

Sheets("Feuil1").Select
' On compte les lignes dans la feuil Feuil1
intNbLigne = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row

est avantageusement remplacé par

' On compte les lignes dans la feuil Feuil1
intNbLigne = Sheets("Feuil1").Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row



Bonjour a tous

J'ai fait une macro dans l'événementiel de la feuil2

Elle ne fonctionne pas quand je sélectionne ma feuil2 (clic)

Le premier Bug que je rencontre

C'est qu'il ne fait pas le "Cells.Select"

Sheets("Feuil1").Select
Cells.Select
Selection.Copy

Le deuxième bug est, le "Sheets("Feuil2").Select"

C'est complément normal que la macro tourne en boucle

Mais je ne sais pas comment faire pour sauter cette étape

'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select

--------La macro complete---------------

Dim i As Double
Dim intNbLigne As Integer

ActiveSheet.Unprotect
'Il selectionne la feuil Vlans
Sheets("Feuil1").Select
'On conte les lignes dans la feuil Feuil1
intNbLigne = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Sheets("Feuil1").Select
Cells.Select
Selection.Copy

'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select
ActiveSheet.Paste
Sheets("Feuil2").Select
Range("A1").Select
For i = 1 To intNbLigne
Cells(i, 9).Formula = "=Somme" & "(" & "D" & i & ")"
Next i

'Filtre plus triage par orde croissant

Selection.AutoFilter Field:=9, Criteria1:="<> ", Operator:=xlAnd
Columns("I:I").Select
Range("A1:I426").Sort Key1:=Range("I1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
'Protection de la feuil
ActiveSheet.Protect DrawingObjects:úlse, Contents:=True,
Scenarios:=True
End Sub

------------Fin--------------------

Avez vous une idée ?

Merci par avance toute solution

Bonne journée a tous

A bientôt


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Troxsa
Merci ça fonctionne deja mieux
et j'ai fini par trouver toute mes erreurs

le code fonctionne tres bien maintenant
merci encore pour ton coup de main

+++
Avatar
tilouw
je pensais que "cells.select" était impossible cf index
sur cells obligatoire (genre cells(i,j)...) mais je peux
me tromper
-----Message d'origine-----



Bonjour a tous



J'ai fait une macro dans l'événementiel de la feuil2

Elle ne fonctionne pas quand je sélectionne ma feuil2
(clic)




Le premier Bug que je rencontre

C'est qu'il ne fait pas le "Cells.Select"



Sheets("Feuil1").Select
Cells.Select
Selection.Copy



Le deuxième bug est, le "Sheets("Feuil2").Select"

C'est complément normal que la macro tourne en boucle

Mais je ne sais pas comment faire pour sauter cette étape



'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select



--------La macro complete---------------

Dim i As Double
Dim intNbLigne As Integer

ActiveSheet.Unprotect
'Il selectionne la feuil Vlans
Sheets("Feuil1").Select
'On conte les lignes dans la feuil Feuil1
intNbLigne = Cells.Find("*", [A1], , , xlByRows,
xlPrevious).Row

Sheets("Feuil1").Select
Cells.Select
Selection.Copy

'On retourne dans la feuil Feuil2
Sheets("Feuil2").Select
Sheets.Select
ActiveSheet.Paste
Sheets("Feuil2").Select
Range("A1").Select
For i = 1 To intNbLigne
Cells(i, 9).Formula = "=Somme" & "(" & "D" & i
& ")"

Next i

'Filtre plus triage par orde croissant

Selection.AutoFilter Field:=9, Criteria1:="<> ",
Operator:=xlAnd

Columns("I:I").Select
Range("A1:I426").Sort Key1:=Range("I1"),
Order1:=xlAscending, Header:= _

xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
'Protection de la feuil
ActiveSheet.Protect DrawingObjects:úlse,
Contents:=True,

Scenarios:=True
End Sub

------------Fin--------------------



Avez vous une idée ?

Merci par avance toute solution



Bonne journée a tous

A bientôt


.