• Initiateur de la discussion Initiateur de la discussion PAD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour