A voir également:
- Commande Find ou Intersect / Excel
- Invite de commande - Guide
- Liste déroulante excel - Guide
- Si ou excel - Guide
- Commande terminal mac - Guide
- Word et excel gratuit - Guide
5 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
23 févr. 2008 à 09:24
23 févr. 2008 à 09:24
Bonjour,
Je ne suis pas sûr d'avoir vraiment compris ton besoin mais tu as INTERSECT(plage1,plage2).
Tu as également le caractère espace qui est l'opérateur d'intersection.
eric
Je ne suis pas sûr d'avoir vraiment compris ton besoin mais tu as INTERSECT(plage1,plage2).
Tu as également le caractère espace qui est l'opérateur d'intersection.
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
23 févr. 2008 à 21:40
23 févr. 2008 à 21:40
Soit en lui passant directement les noms:
Dim a As Range
Set a = Intersect(Range("nom1"), Range("nom2"))
MsgBox (a.Value)
soit par l'intermédiaire de variables:
Dim a As Range, b As String, c As String
b = "nom1"
c = "nom2"
Set a = Intersect(Range(b), Range(c))
MsgBox (a.Value)
Premiérement, la méthode est elle judicieuse???????
Nommer les cellules et les plages est très bien sur une feuille et est plus parlant, mais en vba ce n'erst pas forcément la méthode la plus simple ni la plus souple.
Niomme juste la cellule en haut à gauche de ton tableau 'tableToto' par exemple, et à partir de là utilise la propriété offset(ligne,colonne) pour t'adresser à une celulle décalée.
range("tableToto").offset(5,3).value = 8 te met 8 à 5 lignes plus bas et 3 colonnes à droite.
tu as aussi cells(6,2) qui t'adresse à la cellule B6
bonne continuation
eric
Dim a As Range
Set a = Intersect(Range("nom1"), Range("nom2"))
MsgBox (a.Value)
soit par l'intermédiaire de variables:
Dim a As Range, b As String, c As String
b = "nom1"
c = "nom2"
Set a = Intersect(Range(b), Range(c))
MsgBox (a.Value)
Premiérement, la méthode est elle judicieuse???????
Nommer les cellules et les plages est très bien sur une feuille et est plus parlant, mais en vba ce n'erst pas forcément la méthode la plus simple ni la plus souple.
Niomme juste la cellule en haut à gauche de ton tableau 'tableToto' par exemple, et à partir de là utilise la propriété offset(ligne,colonne) pour t'adresser à une celulle décalée.
range("tableToto").offset(5,3).value = 8 te met 8 à 5 lignes plus bas et 3 colonnes à droite.
tu as aussi cells(6,2) qui t'adresse à la cellule B6
bonne continuation
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
OK merci pour, le cour de rédaction, mais tout bien réfléchi cela ne pourra pas marcher avec intersect, étant donnée qu ma plage principale s'étend sur toute l'années les intersection sont aussi nobreuses que le nombres de jours plus 400 cellules..... cela ne pouvait pas fonctionner. Donc je vais tenter de rester sur le la commande Find, (la date dans la colonne: récupére la ligne) find (le nom dans ligne 1, récupére la colonne) et trouve la cellule "find:find"
J'ai utilisé find dans un autre projet que je termine et là ca a fonctionne donc je devrais m'en sortir pour 9A, en revanche il faut que j'opére cette recherche pour tous les jours d'un mois et ce pour 30 personnes.
Ce qui nous donne quelquechose qui pour moi tourne en carré,
du genre
Dim x as Range
Dim y as range
Dim u as Range
Dim v as range
Dim W as range
Dim nom as string
Dim date as date
Sheets"mafeuille".Select
For Each Cell in Maplage (plage discontinue)
set x = ActiveCell
x.copy
nom= range("A" & x.rows).Value
date= range(x.columns &"4")
sheets "mafeuille2".Select
Set U = range("a"&"range A6.Endxltoright.find(nom).rows)
set v = range(maplage2.find(date)&"(5))
set w = range(v.Rows, u.columns)
W.Select
Activsheet.paste
(je comprend bien que ce code est totalement improbable, et c'est là mon probléme)
Surtout que mem si j'y arrive il faudrait que je repete cette manip pour chaque jour et chaque personne, soit plus de
750 fois, dans un sens, puis dans un autre pour envoyer l'info vers les feuilles de chaque mois, et ce à chaque modifications....
D'ou ma question initiale, est ce qu'il faut vraiment que je continue à essayer de trouver la bonne synthaxe de cette boucle, ou bien que je reprenne le projet à la base, et que j'organise mes pages différements. Il y a des fonctions que je ne connait pas et qui rendrait certainement ce travail beaucoup plus simple.
Mon Secon projet étant abouti je reprend celui là de pied ferme dés demain. Merci à ceux qui auraitedes propositions
J'ai utilisé find dans un autre projet que je termine et là ca a fonctionne donc je devrais m'en sortir pour 9A, en revanche il faut que j'opére cette recherche pour tous les jours d'un mois et ce pour 30 personnes.
Ce qui nous donne quelquechose qui pour moi tourne en carré,
du genre
Dim x as Range
Dim y as range
Dim u as Range
Dim v as range
Dim W as range
Dim nom as string
Dim date as date
Sheets"mafeuille".Select
For Each Cell in Maplage (plage discontinue)
set x = ActiveCell
x.copy
nom= range("A" & x.rows).Value
date= range(x.columns &"4")
sheets "mafeuille2".Select
Set U = range("a"&"range A6.Endxltoright.find(nom).rows)
set v = range(maplage2.find(date)&"(5))
set w = range(v.Rows, u.columns)
W.Select
Activsheet.paste
(je comprend bien que ce code est totalement improbable, et c'est là mon probléme)
Surtout que mem si j'y arrive il faudrait que je repete cette manip pour chaque jour et chaque personne, soit plus de
750 fois, dans un sens, puis dans un autre pour envoyer l'info vers les feuilles de chaque mois, et ce à chaque modifications....
D'ou ma question initiale, est ce qu'il faut vraiment que je continue à essayer de trouver la bonne synthaxe de cette boucle, ou bien que je reprenne le projet à la base, et que j'organise mes pages différements. Il y a des fonctions que je ne connait pas et qui rendrait certainement ce travail beaucoup plus simple.
Mon Secon projet étant abouti je reprend celui là de pied ferme dés demain. Merci à ceux qui auraitedes propositions
23 févr. 2008 à 03:16