Excel VBA : selection de plage
Résolu/Fermé
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
-
26 mai 2011 à 16:09
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 27 mai 2011 à 08:39
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 27 mai 2011 à 08:39
A voir également:
- Excel VBA : selection de plage
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
6 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
26 mai 2011 à 16:50
26 mai 2011 à 16:50
Bonjour,
En effet,
la fonction range se définit comme ca :
range(1èrecellule,dernière cellule).select
toi, tu lui demandes l'impossible.
Voici le bon code :
range(cells(cel1.rows,1),cells(cel1.rows,24)).select 'sélectionnes la ligne de cel1 et de la 1ère la 24ème colonne
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 10092288
.TintAndShade = 0
.PatternTintAndShade = 0
End With
range(cells(cel1.rows,26),cells(cel1.rows,36)).select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 10092288
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Essaie de voir et au besoin adapte
En effet,
la fonction range se définit comme ca :
range(1èrecellule,dernière cellule).select
toi, tu lui demandes l'impossible.
Voici le bon code :
range(cells(cel1.rows,1),cells(cel1.rows,24)).select 'sélectionnes la ligne de cel1 et de la 1ère la 24ème colonne
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 10092288
.TintAndShade = 0
.PatternTintAndShade = 0
End With
range(cells(cel1.rows,26),cells(cel1.rows,36)).select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 10092288
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Essaie de voir et au besoin adapte
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
26 mai 2011 à 17:24
26 mai 2011 à 17:24
bonjour à tous les deux
pour réunir plusieurs plages tu peux tenter Union
bonne suite
pour réunir plusieurs plages tu peux tenter Union
Dim plage As Range Set plage = Union(Range("A1:B5"), Range("C6:D8")) plage.Select
bonne suite
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
Modifié par Eaheru le 26/05/2011 à 17:18
Modifié par Eaheru le 26/05/2011 à 17:18
Merci beaucoup Mélanie,
Je teste ça immédiatement.
Si je n'abuse pas, connais tu la syntaxe correcte pour sélectionner plusieurs plage non contigües en même temps ?
J'ai tenté avec les " : " mais ce n'est pas correct.
L'adaptation donne :
ws1.Range(Cells(cel1.Rows, 1), Cells(cel1.Rows, 6)).Select
Mais la macro me retourne : Erreur d'execution 13, "Incompatibilité de type" :(
Je teste ça immédiatement.
Si je n'abuse pas, connais tu la syntaxe correcte pour sélectionner plusieurs plage non contigües en même temps ?
J'ai tenté avec les " : " mais ce n'est pas correct.
L'adaptation donne :
ws1.Range(Cells(cel1.Rows, 1), Cells(cel1.Rows, 6)).Select
Mais la macro me retourne : Erreur d'execution 13, "Incompatibilité de type" :(
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
27 mai 2011 à 08:23
27 mai 2011 à 08:23
Merci aussi a toi ccm81,
l'union a l'air de bien fonctionner dans un fichier "seul".
Mon problème vient de l'utilisation de "Workspace"
Avec l'initialisation de la macro comme suit :
Set wk1 = Workbooks.Open(Filename:= "test1.xls")
Set wk2 = Workbooks.Open(Filename:= "\test2.xls")
Set ws2 = wk2.Worksheets(1)
derlig2 = ws2.Range("AZ65536").End(xlUp).Row
Set ws1 = wk1.Worksheets(1)
J'ai tenté :
ws1.Range(("A" & cel1.Row), ("F" & cel1.Row)).Select
et
ws1.Range(Cells(cel1.Rows, 1), Cells(cel1.Rows, 6)).Select
Mais rien à faire. Est ce que ma variable ws1 devrait être placé ailleurs ou ma syntaxe n'est pas la bonne ?
l'union a l'air de bien fonctionner dans un fichier "seul".
Mon problème vient de l'utilisation de "Workspace"
Avec l'initialisation de la macro comme suit :
Set wk1 = Workbooks.Open(Filename:= "test1.xls")
Set wk2 = Workbooks.Open(Filename:= "\test2.xls")
Set ws2 = wk2.Worksheets(1)
derlig2 = ws2.Range("AZ65536").End(xlUp).Row
Set ws1 = wk1.Worksheets(1)
J'ai tenté :
ws1.Range(("A" & cel1.Row), ("F" & cel1.Row)).Select
et
ws1.Range(Cells(cel1.Rows, 1), Cells(cel1.Rows, 6)).Select
Mais rien à faire. Est ce que ma variable ws1 devrait être placé ailleurs ou ma syntaxe n'est pas la bonne ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
27 mai 2011 à 08:30
27 mai 2011 à 08:30
Bonjour,
ta syntaxe est mauvaise :
sheets(ws1).select
range(cells(cel1.row,1),cells(cel1.row,6)).select
sinon, il y en a une mais je ne suis pas sure qu'elle fonctionne essaie de faire le test :
range(sheets(ws1).cells(cel1.row,1),sheets(ws1).cells(cel1.row,6)).select
ta syntaxe est mauvaise :
sheets(ws1).select
range(cells(cel1.row,1),cells(cel1.row,6)).select
sinon, il y en a une mais je ne suis pas sure qu'elle fonctionne essaie de faire le test :
range(sheets(ws1).cells(cel1.row,1),sheets(ws1).cells(cel1.row,6)).select
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
Modifié par Eaheru le 27/05/2011 à 08:43
Modifié par Eaheru le 27/05/2011 à 08:43
Bonjour Mélanie,
Merci de ta réponse.
Je viens de tenter la première solution et j'ai un retour "incompatibilité de type" sur la ligne : sheets(ws1).select
Je sèche la
Edit : Je pense avoir trouvé. J'ai remplacé le "sheets(ws1).select" par "ws1.Activate"
et ça semble fonctionner :)
Merci de votre aide !!!!
Merci de ta réponse.
Je viens de tenter la première solution et j'ai un retour "incompatibilité de type" sur la ligne : sheets(ws1).select
Je sèche la
Edit : Je pense avoir trouvé. J'ai remplacé le "sheets(ws1).select" par "ws1.Activate"
et ça semble fonctionner :)
Merci de votre aide !!!!