OVH Cloud OVH Cloud

améliorer proc de réorganisation horizontale

10 réponses
Avatar
J
Bonjour zatous (XL2000)
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'====
Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'====
mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que :
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'=====
If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====

Merci zatous
@+
J@@

10 réponses

Avatar
LSteph
Bonsoir
Peut-être pas bien compris voici ce que j'en traduis sachant
que masqué il doit y avoir un perso.xls ce qui fait 3

Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add
.Arrange xlArrangeStyleHorizontal
End With

End Sub

'lSteph

"J@@" a écrit dans le message de news:

Bonjour zatous (XL2000)
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== > Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== > mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== > If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'==== >
Merci zatous
@+
J@@


Avatar
J
Bonjour 'lSteph
Super
c'est impeccable dans le cas où il y a 2 classeurs (j'avais oublié le
perso masqué :-))
mais si je n'ai qu'un seul classeur ouvert avec 1 seule fenêtre, comment
adapter ta macro?
'tentative qui, bien sûr, ne fonctionne pas

If Workbooks.Count < 2 Then Window.Add
If Workbooks.Count < 3 Then Workbooks.Add
.Arrange xlArrangeStyleHorizontal

merci
@+
J@@ (coupdesoleiliséparletourdiledhier)

Bonsoir
Peut-être pas bien compris voici ce que j'en traduis sachant
que masqué il doit y avoir un perso.xls ce qui fait 3

Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add
..Arrange xlArrangeStyleHorizontal
End With

End Sub

Bonjour zatous (XL2000)
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== >>Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== >>mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== >>If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====




Avatar
LSteph
Re,
Ceci fait que:
si un seul classeur (hors perso) on en ajoute 1
sinon on fait juste la réorganisation.

Mais est-ce bien ce que tu voulais?

Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add 'ajoute un classeur s'il y en a
moins de 3 (perso compris)
.Arrange xlArrangeStyleHorizontal
End With

End Sub


"J@@" a écrit dans le message de news:
%23AWY$D$
Bonjour 'lSteph
Super
c'est impeccable dans le cas où il y a 2 classeurs (j'avais oublié le
perso masqué :-))
mais si je n'ai qu'un seul classeur ouvert avec 1 seule fenêtre, comment
adapter ta macro?
'tentative qui, bien sûr, ne fonctionne pas

If Workbooks.Count < 2 Then Window.Add
If Workbooks.Count < 3 Then Workbooks.Add
.Arrange xlArrangeStyleHorizontal

merci
@+
J@@ (coupdesoleiliséparletourdiledhier)

Bonsoir
Peut-être pas bien compris voici ce que j'en traduis sachant
que masqué il doit y avoir un perso.xls ce qui fait 3

Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add
..Arrange xlArrangeStyleHorizontal
End With

End Sub

Bonjour zatous (XL2000)
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== >>>Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== >>>mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== >>>If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====






Avatar
J
Bonjour 'lSteph

sinon on fait juste la réorganisation.
Mais est-ce bien ce que tu voulais?
En partie seulement,

*Actuellement : si il y a plus de 1 classeur, => réarrange horiz,
*je souhaite *aussi* que s'il n'y a qu'un classeur avec 1 seule feuille,
la sub ajoute 1 fenêtre (semblable à la première :
ActiveWindow.NewWindow), mais sans ajouter de classeur, puis les
réarrange horizontalement.

merci pour ta patience
J@@


Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add 'ajoute un classeur s'il y en a
moins de 3 (perso compris)
.Arrange xlArrangeStyleHorizontal
End With

End Sub


"J@@" <
Super
c'est impeccable dans le cas où il y a 2 classeurs (j'avais oublié le
perso masqué :-))
mais si je n'ai qu'un seul classeur ouvert avec 1 seule fenêtre, comment
adapter ta macro?
'tentative qui, bien sûr, ne fonctionne pas

If Workbooks.Count < 2 Then Window.Add
If Workbooks.Count < 3 Then Workbooks.Add
.Arrange xlArrangeStyleHorizontal

Peut-être pas bien compris voici ce que j'en traduis sachant
que masqué il doit y avoir un perso.xls ce qui fait 3

Sub arrwind()
With Application.Windows
If Workbooks.Count < 3 Then Workbooks.Add
.Arrange xlArrangeStyleHorizontal
End With

End Sub

Bonjour zatous (XL2000)
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== >>>>Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== >>>>mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== >>>>If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====









Avatar
J
Re Bonjour
Mais est-ce bien ce que tu voulais?
Pas exactement


Après quelques tatonnements, voila où j'en suis
Je bute sur le fait que si je n'ai qu'un classeur ouvert, si je clique
pleins de fois, j'aurai pleins de fenêtres, alors que je n'en veux que 2.
'======= Sub arrwind2()
With Application.Windows
If Workbooks.Count > 2 Then .Arrange xlArrangeStyleHorizontal
If Workbooks.Count = 2 Then
ActiveWindow.NewWindow 'mais je ne veux qu'1 seule fois cette action
.Arrange xlArrangeStyleHorizontal
End If
End With
End Sub
'======= Une idée
merci
J@@

Avatar
LSteph
Bonjour,
ainsi peut-être,

Sub arrwind2()
If Workbooks.Count <= 2 Then ActiveSheet.Copy
Application.Windows.Arrange xlArrangeStyleHorizontal
End Sub

';-)
'lSteph
"J@@" a écrit dans le message de news:

Re Bonjour
Mais est-ce bien ce que tu voulais?
Pas exactement


Après quelques tatonnements, voila où j'en suis
Je bute sur le fait que si je n'ai qu'un classeur ouvert, si je clique
pleins de fois, j'aurai pleins de fenêtres, alors que je n'en veux que 2.
'======= > Sub arrwind2()
With Application.Windows
If Workbooks.Count > 2 Then .Arrange xlArrangeStyleHorizontal
If Workbooks.Count = 2 Then
ActiveWindow.NewWindow 'mais je ne veux qu'1 seule fois cette action
.Arrange xlArrangeStyleHorizontal
End If
End With
End Sub
'======= > Une idée
merci
J@@



Avatar
J
Bonjour
Là cela me crée un nouveau classeur, en fait j'essaie de faire la manip
que fait le bouton "nouvelle fenetre", mais en créant une 2e fenetre
simplement lorsque celle-ci manque.
Dan ce qui suit je souhaite bloquer la partie non mise en remarque à 1
seule action, car chaque que je clique, comme il n'y a (bien sûr)qu'un
classeur, cela me rajoute en core et encore une fenêtre

Sub arrwind2()
With Application.Windows
'If Workbooks.Count > 2 Then .Arrange xlArrangeStyleHorizontal 'c'est bon
If Workbooks.Count = 2 Then
ActiveWindow.NewWindow 'mais je ne veut qu'une seule fois cette action
.Arrange xlArrangeStyleHorizontal
End If
End With
End Sub

Bon, fait nuit ici, je vais me coucher
merci pour l'aide
@+
J@@

Bonjour,
ainsi peut-être,

Sub arrwind2()
If Workbooks.Count <= 2 Then ActiveSheet.Copy
Application.Windows.Arrange xlArrangeStyleHorizontal
End Sub

"J@@" <
Mais est-ce bien ce que tu voulais?
Pas exactement


Après quelques tatonnements, voila où j'en suis
Je bute sur le fait que si je n'ai qu'un classeur ouvert, si je clique
pleins de fois, j'aurai pleins de fenêtres, alors que je n'en veux que 2.
'======= >>Sub arrwind2()
With Application.Windows
If Workbooks.Count > 2 Then .Arrange xlArrangeStyleHorizontal
If Workbooks.Count = 2 Then
ActiveWindow.NewWindow 'mais je ne veux qu'1 seule fois cette action
.Arrange xlArrangeStyleHorizontal
End If
End With
End Sub
'========





Avatar
J
Bonjour à tous
après moult essais, voici une macro qui fait ce que je souhaite :

Sub ArrangeHoriz()
With Application.Windows
If Workbooks.Count > 2 Then
'si > 2classeurs dont le Perso.xls
.Arrange xlArrangeStyleHorizontal
Else
'si < 2classeurs dont le Perso.xls
If Windows.Count < 3 Then
'si moins de 3 fenêtres dont Perso, ajoute 1 fenêtre
ActiveWindow.NewWindow
Windows.Arrange ArrangeStyle:=xlHorizontal
Else
End If
End If
End With
End Sub

Merci à 'lSteph et michdenis.
@+
J@@


J@@ wrote:
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== > Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== > mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que :
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== > If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====


Avatar
LSteph
Bonjour J@@,
;-)
Tant mieux, je vois plus précisément, seulement fenêtre, pas classeur!

Mais si cela marche je n'ai pas vraiment compris ce qui fait que depuis
le début tu ne veuilles pas l'écrire en une seule instruction if, chez moi
ceci
semble faire exactement la même chose:

Sub ArrangeHoriz2()

If Windows.Count < 3 Then ActiveWindow.NewWindow

Windows.Arrange ArrangeStyle:=xlHorizontal

End Sub


'lSteph



"J@@" a écrit dans le message de news:

Bonjour à tous
après moult essais, voici une macro qui fait ce que je souhaite :

Sub ArrangeHoriz()
With Application.Windows
If Workbooks.Count > 2 Then
'si > 2classeurs dont le Perso.xls
.Arrange xlArrangeStyleHorizontal
Else
'si < 2classeurs dont le Perso.xls
If Windows.Count < 3 Then
'si moins de 3 fenêtres dont Perso, ajoute 1 fenêtre
ActiveWindow.NewWindow
Windows.Arrange ArrangeStyle:=xlHorizontal
Else
End If
End If
End With
End Sub

Merci à 'lSteph et michdenis.
@+
J@@


J@@ wrote:
Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== >> Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== >> mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== >> If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====




Avatar
J
Bonjour LSteph
Et oui, comment faire simple quand on peut faire compliqué!! ;-)
Quand je pense aux litres de sueur versés .....
J'adopte ta solution :-)
et je vais chez l'opticien pour qu'il change mes lunettes en peau de
saucisson : elles semblent m'empêcher de bien voir.

Merci à toi
@+
J@@

LSteph wrote:
Bonjour J@@,
;-)
Tant mieux, je vois plus précisément, seulement fenêtre, pas classeur!

Mais si cela marche je n'ai pas vraiment compris ce qui fait que depuis
le début tu ne veuilles pas l'écrire en une seule instruction if, chez moi
ceci
semble faire exactement la même chose:

Sub ArrangeHoriz2()

If Windows.Count < 3 Then ActiveWindow.NewWindow

Windows.Arrange ArrangeStyle:=xlHorizontal

End Sub


'lSteph



"J@@" a écrit dans le message de news:


Bonjour à tous
après moult essais, voici une macro qui fait ce que je souhaite :

Sub ArrangeHoriz()
With Application.Windows
If Workbooks.Count > 2 Then
'si > 2classeurs dont le Perso.xls
.Arrange xlArrangeStyleHorizontal
Else
'si < 2classeurs dont le Perso.xls
If Windows.Count < 3 Then
'si moins de 3 fenêtres dont Perso, ajoute 1 fenêtre
ActiveWindow.NewWindow
Windows.Arrange ArrangeStyle:=xlHorizontal
Else
End If
End If
End With
End Sub

Merci à 'lSteph et michdenis.
@+
J@@


J@@ wrote:

Avec la sub suivante je crée une 2è fenêtre et je mets tout cela en
réorganisation horizontale.

'=== >>>Sub AjoutFenetreHoriz()
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
End Sub
'=== >>>mais dès fois il n'y a pas besoin de créer une nouvelle feuille parce que
:
1 - il y en a deja une,
2 - il y a un autre classeur ouvert.

Comment écrire :
'==== >>>If autreclasseur-n'existepas Or fenetre2-n'existepas
Then
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleHorizontal
Else
Windows.Arrange xlArrangeStyleHorizontal
'=====