Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Popur Cousinhub et JB

2 réponses
Avatar
rthompson
Bonjour

Avant tout MERCI mais j'ai une petite question (si vous avez le temps)



Avec un jour de retard

Donc voilà

J'ai relus vos réponses
Et je crois que j'ai compris

J'ai changé et inséré les différentes parties de macro

ET CA MARCHE !!!!!!!!

C'est fou

On dirait que je commence à comprendre comment lancer une macro dans une
macro

MAIS, j'ai quand même une petite question
Dans la macro ci-dessous tout va bien

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
Call Button1028_Click
End Sub
xxxxxxxxxxxxxxxxx

Le Call lance celle-ci

xxxxxxxxxxxxxxxxx
Sub Button1028_Click()
Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub
xxxxxxxxxxxxxxxxxxx

La macro ouvre la feuille Offer-Show et ne montre que les lignes ou il y a
une valeur en C
Mais quand j'insère le texte complet, cela réagit plus comme il faut

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
'

Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub

xxxxxxxxxxxxxxxxxxxxx


J'explique
Avec la version Call il me montre toutes les lignes requises
Avec la version complète, les lignes affichées sont les mêmes
Donc il fait une ré-actualisation des valeurs, mais pas les lignes à
afficher


Ce n'est pas grâve, parce que cela marche avec le Call
Mais je voudrais comprendre ce que je fais de mal

Un grand merci à vous deux

A bientôt

Rex

2 réponses

Avatar
cousinhub
Bonsoir,
pour reprendre ton exemple :
le code se produit dès l'évènement Doubleclic sur ta feuille, et est
donc inscrit dans le code de la feuille. A partir de ce moment-là, si tu
sélectionnes une autre feuille, ben, ça marche pas.
Pour y remédier, à la place de sélectionner ta feuille :
Sheets("Offer-Show").Select
tu écris comme ceci :


With Sheets("Offer-Show")
For Each c In .Range(.[E2], .[E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End With

N'oublie pas les . (points) devant .Range et .[E2], .[E65000].End(xlUp)
Bon courage

Bonjour

Avant tout MERCI mais j'ai une petite question (si vous avez le temps)



Avec un jour de retard

Donc voilà

J'ai relus vos réponses
Et je crois que j'ai compris

J'ai changé et inséré les différentes parties de macro

ET CA MARCHE !!!!!!!!

C'est fou

On dirait que je commence à comprendre comment lancer une macro dans une
macro

MAIS, j'ai quand même une petite question
Dans la macro ci-dessous tout va bien

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
Call Button1028_Click
End Sub
xxxxxxxxxxxxxxxxx

Le Call lance celle-ci

xxxxxxxxxxxxxxxxx
Sub Button1028_Click()
Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub
xxxxxxxxxxxxxxxxxxx

La macro ouvre la feuille Offer-Show et ne montre que les lignes ou il y a
une valeur en C
Mais quand j'insère le texte complet, cela réagit plus comme il faut

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
'

Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub

xxxxxxxxxxxxxxxxxxxxx


J'explique
Avec la version Call il me montre toutes les lignes requises
Avec la version complète, les lignes affichées sont les mêmes
Donc il fait une ré-actualisation des valeurs, mais pas les lignes à
afficher


Ce n'est pas grâve, parce que cela marche avec le Call
Mais je voudrais comprendre ce que je fais de mal

Un grand merci à vous deux

A bientôt

Rex




Avatar
Rex
Bonsoir et MERCI

J'essaye cela tantôt
Et je te tiens au courant

A bientôt

Rex

PS As-tu une idée pour mon message Compteur manuel?




"cousinhub" a écrit dans le message de news:

Bonsoir,
pour reprendre ton exemple :
le code se produit dès l'évènement Doubleclic sur ta feuille, et est
donc inscrit dans le code de la feuille. A partir de ce moment-là, si tu
sélectionnes une autre feuille, ben, ça marche pas.
Pour y remédier, à la place de sélectionner ta feuille :
Sheets("Offer-Show").Select
tu écris comme ceci :


With Sheets("Offer-Show")
For Each c In .Range(.[E2], .[E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End With

N'oublie pas les . (points) devant .Range et .[E2], .[E65000].End(xlUp)
Bon courage

Bonjour

Avant tout MERCI mais j'ai une petite question (si vous avez le
temps)





Avec un jour de retard

Donc voilà

J'ai relus vos réponses
Et je crois que j'ai compris

J'ai changé et inséré les différentes parties de macro

ET CA MARCHE !!!!!!!!

C'est fou

On dirait que je commence à comprendre comment lancer une macro dans une
macro

MAIS, j'ai quand même une petite question
Dans la macro ci-dessous tout va bien

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
Call Button1028_Click
End Sub
xxxxxxxxxxxxxxxxx

Le Call lance celle-ci

xxxxxxxxxxxxxxxxx
Sub Button1028_Click()
Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub
xxxxxxxxxxxxxxxxxxx

La macro ouvre la feuille Offer-Show et ne montre que les lignes ou il y
a


une valeur en C
Mais quand j'insère le texte complet, cela réagit plus comme il faut

xxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Excel.Range, Cancel As Boolean)
Dim i As Long
Application.ScreenUpdating = False
If Intersect(Target, Range("a4:cc1000")) Is Nothing Then Exit Sub
For i = 1 To Range("a4:cc1000").Rows.Count
If Range("a4:cc1000").Rows(i).Row = Target.Row Then
Sheets("Offer-Show").[a2] = i
End If
Sheets("Offer-Show").Select
Next
'

Application.ScreenUpdating = False

For Each c In Range([E2], [E65000].End(xlUp))
c.EntireRow.Hidden = (c.Value = 0)
Next c
End Sub

xxxxxxxxxxxxxxxxxxxxx


J'explique
Avec la version Call il me montre toutes les lignes requises
Avec la version complète, les lignes affichées sont les mêmes
Donc il fait une ré-actualisation des valeurs, mais pas les lignes à
afficher


Ce n'est pas grâve, parce que cela marche avec le Call
Mais je voudrais comprendre ce que je fais de mal

Un grand merci à vous deux

A bientôt

Rex