Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 11h52   #1
Membre du Club
 
Inscription : septembre 2006
Messages : 197
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 197
Points : 44
Points : 44
Par défaut Pb avec RANGE

Bonjour
Je souhaiterais selectionne des cellules non adjentes
j'ai ecrit le code suivante mais l'argument range n'aime pas
Code :
1
2
3
Range(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Select
                Cells(a, 5).Activate
                Selection.Copy

comment faire ???????
fmris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 12h15   #2
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
Salut,
Cells ne fonctionne pas avec les lettre mais avec les nombres,
s'écrit:
Pour faire une multisélection avec Range uniquement tu dois écrire du genre range("a" & 6) et ainsi de suite, il me semble donc plus facile d'écrire:
Code :
1
2
3
4
5
Dim MaPlage As Range
 
Set MaPlage = Application.Union(Cells(1, 6), Cells(1, 5), Cells(1, 9))
 
MaPlage.Copy
Je n'ai pas remis toutes les cellules concernées mais tu le fera facilement, tu constateras aussi que je n'ai pas fait de Select, en effet, ce n'est pas nécessaire, donc à éviter afin de ne pas ralentir le code.

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 12h23   #3
Membre du Club
 
Inscription : septembre 2006
Messages : 197
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 197
Points : 44
Points : 44
je n'ai pas précisé que a est une variable
je sais que ca fonctionne avec deux arguments

Code :
1
2
3
4
5
For a = 2 To 1000
            If Cells(a, 6) = "Dépenses" Then
                Range(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Select
                Cells(a, 5).Activate
                Selection.Copy
comment faire ??,
fmris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 12h33   #4
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
Citation:
Envoyé par fmris Voir le message
je n'ai pas précisé que a est une variable



Suffit alors d'adapter ma réponse précédente...
Code :
1
2
3
4
5
6
7
Dim MaPlage As Range
For a = 2 To 1000
            If Cells(a, 6) = "Dépenses" Then
                Set MaPlage = Application.Union(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29))
                MaPlage.Copy
                Cells(a, 5).Activate
'...la suite de ton code
Ou sans passer par une variable qui récupère la Plage:
Code :
1
2
3
4
5
For a = 2 To 1000
            If Cells(a, 6) = "Dépenses" Then
                Application.Union(Cells(a, 6), Cells(a, 5), Cells(a, 9), Cells(a, 13), Cells(a, 25), Cells(a, 27), Cells(a, 29)).Copy
                Cells(a, 5).Activate
...
A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web