OVH Cloud OVH Cloud

beug macro remplacement

6 réponses
Avatar
cliffburton57
Bonjour a tous et bonne année

J'ai un probleme consernant la macro suivante :

'--------------------------------
> Sub test()
>
> Dim Rg As Range, a As Integer
> Dim Arr As Variant, x as variant
> Dim Arr1 As Variant
>
> Arr = Array("H", "M", "N", "O", "P", "Q")
> Arr1 = Array(15, 2, 1, 0, 0, 2)
>
> If TypeName(Selection) = "Range" Then
> Set Rg = Selection
> Else
> Exit Sub
> End If
>
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For Each r In Rg.Rows
> For Each x In Arr
>
> Cells(r.Row, x) = Arr1(a)
> a = a + 1
> Next
> a = 0
> Next
> Set Rg = Nothing
> End Sub
> '--------------------------------


Cas ou la macro fonctionne :
-lorsque je selectionne deux cellules d'une ligne
-lorsque je selectionne la ligne entiere
-lorsque je selectionne plusieurs lignes

Cas ou la macro ne fonctionne pas :
-lorsque je selectionne qu'une cellule de la ligne
->le remplacement s'effectue sur la totalité de la colonne de
destination des lignes 1 à 65535.

Comment puis-je faire pour reparer ce bug

Merci d'avance !!

6 réponses

Avatar
anonymousA
Bonjour et meilleurs voeux

Perso, en otant Application.EnableEvents = False , car je ne sais pas
quelle est son utilité dans cette proc ( mais peut-être as-tu une
macro evenementielle qui le nécessite auquel cas il conviendrait alors
de remettre Application.EnableEvents = true à la fin ), cette proc
fonctionne très bien pour moi.

A+
Avatar
cliffburton57
en faite jai remarqué que mon bug n'arrive que lorsque ke je fais un filtre
sur la colonne A par exemple puis un filtre sur la colonne B je lance ensuite
ma macro et la le bud arrive si je ne selectionne qu'une cellule

PS : AnonymousA : Merci de ta reponse mais elle ne repond pas a ma question
le bug arrive tjrs


Bonjour et meilleurs voeux

Perso, en otant Application.EnableEvents = False , car je ne sais pas
quelle est son utilité dans cette proc ( mais peut-être as-tu une
macro evenementielle qui le nécessite auquel cas il conviendrait alors
de remettre Application.EnableEvents = true à la fin ), cette proc
fonctionne très bien pour moi.

A+




Avatar
anonymousA
Re,

je n'ai pas dit que c'est le fait d'enlever Application.EnableEvents =
False qui fait fonctonner la procédure. J'ai simplement dit que j'ai
fait tourner cette proc sans cette instruction car elle ne me servait
à rien pour la tester. Enfin, j'ai essayé mais peut-être pas dans
les conditions que tu rencontres, d'appliquer ta remarque sur les
filtrages puis de faire tourner ta proc mais je ne rencontre toujours
pas de problème pour la faire marcher lorsqu'on ne selectionne qu'une
seule cellule dans la ligne.

A+
Avatar
cliffburton57
Prenon un tableau comme sui

A B C
1 del pui lor
2 1
3 1
4 2
5 3
6 4

On fait un filtre auto sur la ligne 1
on garde que les info de la colonne A avec un 1
on a ppui sur la cellule B2 et on lance la macro
moi il met un temps fou puis on remarque le bug

Merci



Re,

je n'ai pas dit que c'est le fait d'enlever Application.EnableEvents > False qui fait fonctonner la procédure. J'ai simplement dit que j'ai
fait tourner cette proc sans cette instruction car elle ne me servait
à rien pour la tester. Enfin, j'ai essayé mais peut-être pas dans
les conditions que tu rencontres, d'appliquer ta remarque sur les
filtrages puis de faire tourner ta proc mais je ne rencontre toujours
pas de problème pour la faire marcher lorsqu'on ne selectionne qu'une
seule cellule dans la ligne.

A+




Avatar
anonymousA
Désolé, mais même avec ton exemple, je ne reproduis pas ce que tu
signales.J'ai suivi exactement tes instructions et il n'y a ni délai
ni plantage. En étudiant ton code attentivement, je n'y vois pas de
problèmes particuliers non plus.Il y a certainement autre chose qui
explique ce phénomène mais là je ne vois pas. Si tu le souhaites,
publies ton fichier sur cjoint ou envoies le-moi sur ma BAL perso


A+
Avatar
Youky
Je confirme, tout baigne, pas de bugs même avec les filtres ou masquage de
lignes.
Fait un test dans un fichier vierge, tu verras que ca roule....
verifie dans ta macro par cette ligne (à mettre en debut)

msgbox selection.address

Youky
"cliffburton57" a écrit dans le
message de news:
Prenon un tableau comme sui

A B C
1 del pui lor
2 1
3 1
4 2
5 3
6 4

On fait un filtre auto sur la ligne 1
on garde que les info de la colonne A avec un 1
on a ppui sur la cellule B2 et on lance la macro
moi il met un temps fou puis on remarque le bug

Merci



Re,

je n'ai pas dit que c'est le fait d'enlever Application.EnableEvents >> False qui fait fonctonner la procédure. J'ai simplement dit que j'ai
fait tourner cette proc sans cette instruction car elle ne me servait
à rien pour la tester. Enfin, j'ai essayé mais peut-être pas dans
les conditions que tu rencontres, d'appliquer ta remarque sur les
filtrages puis de faire tourner ta proc mais je ne rencontre toujours
pas de problème pour la faire marcher lorsqu'on ne selectionne qu'une
seule cellule dans la ligne.

A+