Selection d'une cellule d'autre sheet excel
Fermé
joey12
-
26 sept. 2007 à 21:00
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 sept. 2007 à 09:11
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 sept. 2007 à 09:11
Salut,
je voudrais selection une plage de cellule dans un macro vba...
mais ces cellules se trouvent ds un autre sheet... comment faire?
je pensais que cela marcherais...
Sheets("SQL").Range("B4", Range("B6000").End(xlDown)).Select
donc les colonnes sont ds le sheet SQL et moi je suis dans le sheet RIC ...
meric pour votre aide
je voudrais selection une plage de cellule dans un macro vba...
mais ces cellules se trouvent ds un autre sheet... comment faire?
je pensais que cela marcherais...
Sheets("SQL").Range("B4", Range("B6000").End(xlDown)).Select
donc les colonnes sont ds le sheet SQL et moi je suis dans le sheet RIC ...
meric pour votre aide
A voir également:
- Selection d'une cellule d'autre sheet excel
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Déplacer une colonne excel - Guide
6 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
26 sept. 2007 à 21:51
26 sept. 2007 à 21:51
Bonsoir,
Selectionne ou active ta feuille avant et ça marche (enfin si c'est dans un module)
Sheets("SQL").Select
Par contre je ne comprend pas le ", Range("B6000").End(xlDown))".
A moins que tu n'aies une cellule vide au dessus de B6000 et que tu désires selectionner au moins jusque là remarque...
eric
Selectionne ou active ta feuille avant et ça marche (enfin si c'est dans un module)
Sheets("SQL").Select
Par contre je ne comprend pas le ", Range("B6000").End(xlDown))".
A moins que tu n'aies une cellule vide au dessus de B6000 et que tu désires selectionner au moins jusque là remarque...
eric
merci eric...
en fait la je me suis dit que je ferais la macro dans le shete SQL et ke le bouton je le mettrais sur l'autre sheet...
ce pendant... peut etre peut tu m'aider pour cet autre pb que je rencontre...
je voudrais selectionner une colonne qui contien des requetes SQL...
dans chacune des cellule il y a un IF....., ..., "")
donc en gros... dans la colonne j'ai... des requetes SQL et des cellules ""vides"
je voudrais selectionner uniquement les cellules contenant les requetes!!! impossible!!!
avec ca:
Range("K19", Range("K100").End(xlDown)).Select par ex, je selectionne toutes les cellules pleine a partir de K19..
mon pb est que cette ligne selection TOUT... meme les cellules contenant ""!!!
merci de ton eventuelle aide
en fait la je me suis dit que je ferais la macro dans le shete SQL et ke le bouton je le mettrais sur l'autre sheet...
ce pendant... peut etre peut tu m'aider pour cet autre pb que je rencontre...
je voudrais selectionner une colonne qui contien des requetes SQL...
dans chacune des cellule il y a un IF....., ..., "")
donc en gros... dans la colonne j'ai... des requetes SQL et des cellules ""vides"
je voudrais selectionner uniquement les cellules contenant les requetes!!! impossible!!!
avec ca:
Range("K19", Range("K100").End(xlDown)).Select par ex, je selectionne toutes les cellules pleine a partir de K19..
mon pb est que cette ligne selection TOUT... meme les cellules contenant ""!!!
merci de ton eventuelle aide
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
27 sept. 2007 à 00:09
27 sept. 2007 à 00:09
oui j'ai une idée, c'est de faire une intersection de zones, à toi de tester
Dim zone1 As Range
Dim zone2 As Range
' si tes chaines démarrent bien par IF elles seront considérées comme des constantes donc :
Set zone1 = Selection.SpecialCells(xlCellTypeConstants, 23) 'selection de toutes les constantes de ta feuille
Intersect(zone1, Range("B:B")).Select ' et selection de l'intersection avec la colonne B
' si tes chaines démarrent par = elles seront considérées comme des formules donc :
Set zone2 = Selection.SpecialCells(xlCellTypeFormulas, 23) ' idem pour les formules
Intersect(zone2, Range("B:B")).Select
'et si il te faut les 2:
Intersect(Union(zone1,zone2), Range("B:B")).Select ' bon là j'suis moins sûr...
Là j'ai fait avec toute la colonne B, tu mets la zone que tu veux y compris une autre union de zone si besoin
Dis moi si ça a marché... ;-)
eric
Dim zone1 As Range
Dim zone2 As Range
' si tes chaines démarrent bien par IF elles seront considérées comme des constantes donc :
Set zone1 = Selection.SpecialCells(xlCellTypeConstants, 23) 'selection de toutes les constantes de ta feuille
Intersect(zone1, Range("B:B")).Select ' et selection de l'intersection avec la colonne B
' si tes chaines démarrent par = elles seront considérées comme des formules donc :
Set zone2 = Selection.SpecialCells(xlCellTypeFormulas, 23) ' idem pour les formules
Intersect(zone2, Range("B:B")).Select
'et si il te faut les 2:
Intersect(Union(zone1,zone2), Range("B:B")).Select ' bon là j'suis moins sûr...
Là j'ai fait avec toute la colonne B, tu mets la zone que tu veux y compris une autre union de zone si besoin
Dis moi si ça a marché... ;-)
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
27 sept. 2007 à 00:12
27 sept. 2007 à 00:12
Par curiosité pourquoi te faut-il absolument les selectionner comme ça ?
Tu ne vas pas faire un traitement cellule par cellule ? Auquel cas un simple test à chaque fois etait suffisant
Tu ne vas pas faire un traitement cellule par cellule ? Auquel cas un simple test à chaque fois etait suffisant
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut,
j'ai utiliser ta 2eme idee, et ca me donne encore le meme resultat que j'avais...
en gros, dans certaines ligne j'ai la requete queje veux et dans d'autres j'ai vide ("") et ceci donc du au =IF etc etc...
en utilisant ton code, la selection meme les cellules ''vides'' sont selectionnees... et c absoument pas ce que je veux...
le truc c ke c un excel dynamique... donc les requetes peuvent en gros etre sur 10 lignes comme sur 500 lignes de la meme colonne... et pour les executer il faut que je les selectionnent tu vois?
la solution ke je me suis donne c de mettre ds le IF (...,...,"null")
et de faire un test genre:
For Each Cel In Selection
If Cel.Value <> "NULL" Then
psSQL = Cel
Set prs = pcn.Execute(psSQL)
End If
Next
merci!!
j'ai utiliser ta 2eme idee, et ca me donne encore le meme resultat que j'avais...
en gros, dans certaines ligne j'ai la requete queje veux et dans d'autres j'ai vide ("") et ceci donc du au =IF etc etc...
en utilisant ton code, la selection meme les cellules ''vides'' sont selectionnees... et c absoument pas ce que je veux...
le truc c ke c un excel dynamique... donc les requetes peuvent en gros etre sur 10 lignes comme sur 500 lignes de la meme colonne... et pour les executer il faut que je les selectionnent tu vois?
la solution ke je me suis donne c de mettre ds le IF (...,...,"null")
et de faire un test genre:
For Each Cel In Selection
If Cel.Value <> "NULL" Then
psSQL = Cel
Set prs = pcn.Execute(psSQL)
End If
Next
merci!!
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
27 sept. 2007 à 09:11
27 sept. 2007 à 09:11
Bonjour,
Si si ça marche, mais il fallait choisir un .select ou l'autre, les mettre en commentaire sauf celui qui tu testais. L'un à suite de l'autre l'intersection est vide et genere le message.
J'ai reécrit diggeremment qu'il n'y ait qu'un seul .select à la fois
Sub test()
Dim zone1 As Range
Dim zone2 As Range
' constantes
Set zone1 = Selection.SpecialCells(xlCellTypeConstants, 23) 'selection de toutes les constantes de ta feuille
Set zone1 = Intersect(zone1, Range("B:B")) ' et selection de l'intersection avec la colonne B
' formules
Set zone2 = Selection.SpecialCells(xlCellTypeFormulas, 23) ' idem pour les formules
Set zone2 = Intersect(zone2, Range("B:B"))
zone1.Select
MsgBox ("selection contantes")
zone2.Select
MsgBox ("selection formules")
Intersect(Union(zone1, zone2), Range("B:B")).Select
MsgBox ("selection contantes et formules")
End Sub
eric
Si si ça marche, mais il fallait choisir un .select ou l'autre, les mettre en commentaire sauf celui qui tu testais. L'un à suite de l'autre l'intersection est vide et genere le message.
J'ai reécrit diggeremment qu'il n'y ait qu'un seul .select à la fois
Sub test()
Dim zone1 As Range
Dim zone2 As Range
' constantes
Set zone1 = Selection.SpecialCells(xlCellTypeConstants, 23) 'selection de toutes les constantes de ta feuille
Set zone1 = Intersect(zone1, Range("B:B")) ' et selection de l'intersection avec la colonne B
' formules
Set zone2 = Selection.SpecialCells(xlCellTypeFormulas, 23) ' idem pour les formules
Set zone2 = Intersect(zone2, Range("B:B"))
zone1.Select
MsgBox ("selection contantes")
zone2.Select
MsgBox ("selection formules")
Intersect(Union(zone1, zone2), Range("B:B")).Select
MsgBox ("selection contantes et formules")
End Sub
eric