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 27/09/2011, 10h38   #1
Invité de passage
 
Homme
Statisticien
Inscription : août 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Statisticien
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 11
Points : 1
Points : 1
Par défaut Problème avec un range

Bonjour à tous,
Je voudrais sélectionner les cellules se trouvant dans la colonne E puis de G à M (je veux "sauter" la colonne F) à l'aide d'une macro mais lorsque j'execute mon code, Excel me sélectionne de les colonnes de E à M...(F compris...)

Code :
Range("E" & i, "G" & i & ":M" & i).Select
savez-vous comment faire ?
milad92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h49   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Essaie avec
Code :
Application.Union(Range("E" & i), Range("G" & i & ":M" & i)).Select
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h40   #3
Invité de passage
 
Homme
Statisticien
Inscription : août 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Statisticien
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 11
Points : 1
Points : 1
ça n'a pas marché

Citation:
Erreur d'execution '1004'
La méthode 'Range' de l'objet '_Global' a échoué
J'ai également essayé ça mais j'obtiens le même message d'erreur (Global_ etc...) sur "set plage1"

Code :
1
2
3
4
5
Dim plage1 As Range
Dim plage2 As Range
Set plage1 = Range("E" & i)
Set plage2 = Range("G" & i & ":M" & i)
Application.Union(Range("plage1"), Range("plage2")).Select
milad92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h48   #4
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 256
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 256
Points : 2 979
Points : 2 979
Bonjour,

j'ai essayé avec l'enregistreur de macro qui me donne ceci pour la ligne 3.
Code :
    Range("E3,G3:M3").Select
En regardant ton code, la virgule doit je pense être entourée de ". et il manque un & après le i.

Code :
Range("E" & i & ",G" & i & ":M" & i).Select
Attention au select. A éviter autant que possible.
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h52   #5
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Assures-toi que ta variable i est bien renseignée

Code :
1
2
3
4
5
6
7
8
Dim plage1 As Range
Dim plage2 As Range
 
With Worksheets("Feuil1") ' A adapter
    Set plage1 = .Range("E" & i)
    Set plage2 = .Range("G" & i & ":M" & i)
    Application.Union(plage1, plage2).Select
End With
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 13h16   #6
Invité de passage
 
Homme
Statisticien
Inscription : août 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Statisticien
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 11
Points : 1
Points : 1
Citation:
Envoyé par gFZT82 Voir le message
Assures-toi que ta variable i est bien renseignée
SUPER !!! ça fonctionne !!!
Merci beaucoup !

Dernière question :
Existe-t-il un moyen de déclarer plage1 et plage2 une fois pour toute et utiliser application.union dans plusieurs boucles IF ?
Ceci pour éviter de retaper ça à chaque fois :
Code :
1
2
    Set plage1 = .Range("E" & i)
    Set plage2 = .Range("G" & i & ":M" & i)
Merci encore pour votre aide !
milad92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 14h14   #7
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Tu dois te poser la question de la durée de vie et de la portée de tes variables plage1 et plage2.
Si elles sont déclarées avec l’instruction Dim à l’intérieur d’une procédure, elles sont utilisables autant de fois que tu le souhaites … tant que tu ne sors pas de la procédure.
Tu trouveras dans le forum plusieurs exemples sur les déclarations de variables.
Si tu veux utiliser plusieurs fois l’union de plage1 et plage2, tu peux déclarer directement cette plage (MaPlage).
Code :
1
2
3
4
5
6
7
 
Dim MaPlage As Range
 
With Worksheets("Feuil1") ' A adapter
    Set MaPlage = Application.Union(.Range("E" & i), .Range("G" & i & ":M" & i))
    MaPlage.Select
End With
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 14h20   #8
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 256
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 256
Points : 2 979
Points : 2 979
Re, IF n'est pas et ne sera jamais une boucle !.

Si tu as vu ma réponse, tu peux très bien mettre la valeur de ce range dans une variable et l'utiliser où bon te semble.

Salut gFZT82
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h47.


 
 
 
 
Partenaires

Hébergement Web