Application.Union

PAD

XLDnaute Occasionnel
Bonjour le forum,

J'ai encore un petit souci avec Union,
à croire que je vais divorcer de VBA :)

Voilà le code que j'ai mise dans un module,
Code:
Option Explicit

Sub Macro1()
Dim plage1, plage2, plage3, plage4, plage5, plage6, plages As Range

Range('C21:K61').Name = 'plage1'
Range('C77:K132').Name = 'plage2'
Range('C148:K203').Name = 'plage3'
Range('C219:K274').Name = 'plage4'
Range('C290:K345').Name = 'plage5'
Range('C361:K400').Name = 'plage6'
 plages = Application.Union(plage1, plage2, plage3, plage4, plage5, plage6)
 plages.Select
End Sub
Et il me donne un erreur '424', :sick:

Comment l'éviter?
Merci de bien vouloir m'aider,
Bonne journèe à tous,

A+ PAD
 

Hervé

XLDnaute Barbatruc
Bonjour pad


tu confonds 2 types de syntaxes, soit pour ton union tu utilises des plages nommées, soit des variables objet, mais pas les deux :)

ton exemple modifié :


Dim plages As Range

Range('C21:K61').Name = 'plage1'
Range('C77:K132').Name = 'plage2'
Range('C148:K203').Name = 'plage3'
Range('C219:K274').Name = 'plage4'
Range('C290:K345').Name = 'plage5'
Range('C361:K400').Name = 'plage6'
Set plages = Application.Union(Range('plage1'), Range('plage2'), Range('plage3'), Range('plage4'), Range('plage5'), Range('plage6'))
plages.Select

inutile de déclarer les plage.., il ne s'agit que de nom de plage et non des variables (menu-insertion-nom)

et l'union se code comme ceci :
plages = Application.Union(Range('plage1'),...

sinon, si tu veux utiliser des variables objets :


Dim plage1 As Range, plage2 As Range, plage3 As Range
Dim plage4 As Range, plage6 As Range, plages As Range

Set plage1 = Range('C21:K61')
Set plage2 = Range('C77:K132')
Set plage3 = Range('C148:K203')
Set plage4 = Range('C219:K274')
Set plage5 = Range('C290:K345')
Set plage6 = Range('C361:K400')
Set plages = Application.Union(plage1, plage2, plage3, plage4, plage5, plage6)
plages.Select


salut
 

PAD

XLDnaute Occasionnel
re le forum,
Bonjour Hervé,

Je viens de trouver mon erreur aussi B),
'Est-ce que je commencerais à comprendre les subtilités de VBA' :S J'en doute ce n'est qu'un début.

Une autre question Hervé si je peux me permettre,
donc j'ai mis ce code dans un module,
est-ce que je peux l'appeler pour entrer des
données dans les cellules, via une listbox ?

Merci pour ta reponse,

A+ PAD

EDITE :

Si je fais comme ça est-ce bon?

Code:
Option Explicit

Sub Macro1()
Dim plage1, plage2, plage3, plage4, plage5, plage6, plages As Range

Set plage1 = Sheets('Feuil1').Range('C21:K61')
Set plage2 = Sheets('Feuil1').Range('C77:K132')
Set plage3 = Sheets('Feuil1').Range('C148:K203')
Set plage4 = Sheets('Feuil1').Range('C219:K274')
Set plage5 = Sheets('Feuil1').Range('C290:K345')
Set plage6 = Sheets('Feuil1').Range('C361:K400')
 Set plages = Application.Union(plage1, plage2, plage3, plage4, plage5, plage6)
 plages.Value = ListBox1
End Sub

Message édité par: PAD, à: 19/04/2006 10:46
 

Hervé

XLDnaute Barbatruc
re pad


euh....ben essaye :)


oui, ca va marché.

du moment ou tu déclares ta variable plages comme un range, tu bénéficies de toutes les méthodes d'une cellule, comme si l'ensemble des cellules ne faisaient plus qu'une.

salut

Message édité par: hervé, à: 19/04/2006 10:58
 

PAD

XLDnaute Occasionnel
Re le forum,
Re Hervé,

Bon, ça ne marche pas, :( , je regarderai ce soir, je vous laisse mon fichier, je lui ai fait subir un regime, il était trop gros.

J'ai enfin, je pense avoir tout essayé...

Si quelqu'un pouvait me donner une explication sur ce qu'il ne va pas, merci d'avance.

A+ PAD [file name=DevPP3.zip size=49612]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DevPP3.zip[/file]
 

Pièces jointes

  • DevPP3.zip
    48.4 KB · Affichages: 31

Hervé

XLDnaute Barbatruc
re pad

qu'est ce que tu veux faire avec ce code ?

.Cells(dl1, 3 & plages) = Ca 'Label de USF
.Cells(dl1, 4 & plages) = List2 'Listbox de USF
.Cells(dl1, 8 & plages) = Unit 'Label de USF
.Cells(dl1, 9 & plages) = Q 'Textbox de USF
.Cells(dl1, 10 & plages) = Pu 'Label de USF
.Cells(dl1, 11 & plages) = CDbl(PHT) 'Label de USF
dl1 = dl1 + 1

merci de fournir des explications.

salut
 
P

PAD

Guest
RE re Hervé,

Désolé Hervé, je n'ai pas pu te répondre avant,
j'étais au boulot.

Avec ce code? Oui et non,
Oui parce que on est devenu de bon copains,
et en plus il me remplit les cellules.
Et non parce que, mais s'il y a un autre moyen pour le même résultat.

En faite, je serai curieux de savoir comment faire avec les deux méthode,
Si ce n’est pas trop de demander,


Merci de ton aide,

A+ PAD
 

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 512
dernier inscrit
sisi235