Je voudrais mettre dans un tableau plusieurs range provenant de feuilles
différentes (nb colonnes identiques,nb lignes differentes)
du genre :
For i = 1 To 12
fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(i)).Range("LbNom").Row + 1
table = Range("A" & debut, "I" & fin) !
**** Comment ajouter les ranges de la feuille(2) ..feuille(3) etc dans
table ?? ****
next i
Existe t-il des fonctions d'assemblage de tableau ??
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" & Ldéb & ":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes feuilles pourraient comporter des noms avec espaces (à éviter) AV
Kerroch
Bonjour Av , Merci pour ta promptitude.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes) table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" & Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Bonjour Av , Merci pour ta promptitude.
Je crois que j'ai mal formulé ma question.
Je ne veux pas faire de somme algébrique, mais "simplement" récupérer
dans un tableau toutes les ranges de mes différentes feuilles .
ex:
table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2
table(51 to 60) : range de ma feuille 3 etc...
je sais le faire en faisant une boucle for ...next
mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+
Kerroch
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:O3sCG6iyDHA.2712@TK2MSFTNGP11.phx.gbl...
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme()
laSomme = 0
For i = 1 To 5
Ldéb = 1
Lfin = Sheets(i).[A65536].End(3).Row
laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" &
Ldéb &
":A" & Lfin & ")")
Next
MsgBox laSomme
End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter)
AV
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes) table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" & Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Daniel.M
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau. Puis tu copies l'ensemble de ton tableau dans une seule instruction.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes) table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" & Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau.
Puis tu copies l'ensemble de ton tableau dans une seule instruction.
"Kerroch" <lebail.roland@wanadoo.fr> wrote in message
news:bscci5$pb5$1@news-reader5.wanadoo.fr...
Bonjour Av , Merci pour ta promptitude.
Je crois que j'ai mal formulé ma question.
Je ne veux pas faire de somme algébrique, mais "simplement" récupérer
dans un tableau toutes les ranges de mes différentes feuilles .
ex:
table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2
table(51 to 60) : range de ma feuille 3 etc...
je sais le faire en faisant une boucle for ...next
mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+
Kerroch
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:O3sCG6iyDHA.2712@TK2MSFTNGP11.phx.gbl...
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme()
laSomme = 0
For i = 1 To 5
Ldéb = 1
Lfin = Sheets(i).[A65536].End(3).Row
laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" &
Ldéb &
":A" & Lfin & ")")
Next
MsgBox laSomme
End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter)
AV
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes) table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" & Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Kerroch
Pour préciser ma pensée voici l'idée que je voulais expérimenter mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(1)).Range("LbNom").Row + 1 Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE PAS !!! Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Kerroch
"Daniel.M" a écrit dans le message de news:eqac$
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau. Puis tu copies l'ensemble de ton tableau dans une seule instruction.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" &
Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Pour préciser ma pensée voici l'idée que je voulais expérimenter
mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(1)).Range("LbNom").Row + 1
Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12
fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(i)).Range("LbNom").Row + 1
Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE
PAS !!!
Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau
Est-ce plus clair ?
Kerroch
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:eqac$fjyDHA.1856@TK2MSFTNGP09.phx.gbl...
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau.
Puis tu copies l'ensemble de ton tableau dans une seule instruction.
"Kerroch" <lebail.roland@wanadoo.fr> wrote in message
news:bscci5$pb5$1@news-reader5.wanadoo.fr...
Bonjour Av , Merci pour ta promptitude.
Je crois que j'ai mal formulé ma question.
Je ne veux pas faire de somme algébrique, mais "simplement" récupérer
dans un tableau toutes les ranges de mes différentes feuilles .
ex:
table(0 to 10) : range (1ere feuille). (lignes variables , colonnes
fixes)
table(11 to 50): range de ma feuille 2
table(51 to 60) : range de ma feuille 3 etc...
je sais le faire en faisant une boucle for ...next
mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+
Kerroch
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:O3sCG6iyDHA.2712@TK2MSFTNGP11.phx.gbl...
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme()
laSomme = 0
For i = 1 To 5
Ldéb = 1
Lfin = Sheets(i).[A65536].End(3).Row
laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A"
&
Ldéb &
":A" & Lfin & ")")
Next
MsgBox laSomme
End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où
tes
feuilles
pourraient comporter des noms avec espaces (à éviter)
AV
Pour préciser ma pensée voici l'idée que je voulais expérimenter mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(1)).Range("LbNom").Row + 1 Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE PAS !!! Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Kerroch
"Daniel.M" a écrit dans le message de news:eqac$
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau. Puis tu copies l'ensemble de ton tableau dans une seule instruction.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A" &
Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Kerroch
Peut-être parce que les ranges n'appartiennent pas à la même feuille?? kerroch
"Kerroch" a écrit dans le message de news:bsch32$uvk$
Pour préciser ma pensée voici l'idée que je voulais expérimenter mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(1)).Range("LbNom").Row + 1 Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE PAS !!! Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Kerroch
"Daniel.M" a écrit dans le message de news:eqac$
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau. Puis tu copies l'ensemble de ton tableau dans une seule instruction.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A"
&
Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter) AV
Peut-être parce que les ranges n'appartiennent pas à la même feuille??
kerroch
"Kerroch" <lebail.roland@wanadoo.fr> a écrit dans le message de
news:bsch32$uvk$1@news-reader3.wanadoo.fr...
Pour préciser ma pensée voici l'idée que je voulais expérimenter
mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(1)).Range("LbNom").Row + 1
Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12
fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(i)).Range("LbNom").Row + 1
Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE
PAS !!!
Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau
Est-ce plus clair ?
Kerroch
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:eqac$fjyDHA.1856@TK2MSFTNGP09.phx.gbl...
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau.
Puis tu copies l'ensemble de ton tableau dans une seule instruction.
"Kerroch" <lebail.roland@wanadoo.fr> wrote in message
news:bscci5$pb5$1@news-reader5.wanadoo.fr...
Bonjour Av , Merci pour ta promptitude.
Je crois que j'ai mal formulé ma question.
Je ne veux pas faire de somme algébrique, mais "simplement" récupérer
dans un tableau toutes les ranges de mes différentes feuilles .
ex:
table(0 to 10) : range (1ere feuille). (lignes variables , colonnes
fixes)
table(11 to 50): range de ma feuille 2
table(51 to 60) : range de ma feuille 3 etc...
je sais le faire en faisant une boucle for ...next
mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+
Kerroch
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:O3sCG6iyDHA.2712@TK2MSFTNGP11.phx.gbl...
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire
:
Sub zz_Somme()
laSomme = 0
For i = 1 To 5
Ldéb = 1
Lfin = Sheets(i).[A65536].End(3).Row
laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name &
"'!A"
&
Ldéb &
":A" & Lfin & ")")
Next
MsgBox laSomme
End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où
tes
feuilles
pourraient comporter des noms avec espaces (à éviter)
AV
Peut-être parce que les ranges n'appartiennent pas à la même feuille?? kerroch
"Kerroch" a écrit dans le message de news:bsch32$uvk$
Pour préciser ma pensée voici l'idée que je voulais expérimenter mais qui ne marche pas :
fin = Sheets(feuille(1)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(1)).Range("LbNom").Row + 1 Set Totalrange = Sheets(feuille(1)).Range("A" & debut, "I" & fin)
For i = 2 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set LargeRange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Set Totalrange = Application.Union(Totalrange, LargeRange(i)) ! NE MARCHE PAS !!! Next i
table = Totalrange ! Mon tableau total
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Kerroch
"Daniel.M" a écrit dans le message de news:eqac$
Salut,
Sers-toi de .CurrentRegion pour sélectionner les lignes de ton tableau. Puis tu copies l'ensemble de ton tableau dans une seule instruction.
Je crois que j'ai mal formulé ma question. Je ne veux pas faire de somme algébrique, mais "simplement" récupérer dans un tableau toutes les ranges de mes différentes feuilles . ex: table(0 to 10) : range (1ere feuille). (lignes variables , colonnes fixes)
table(11 to 50): range de ma feuille 2 table(51 to 60) : range de ma feuille 3 etc... je sais le faire en faisant une boucle for ...next mais existe t-il un moyen plus rapide pour assembler deux tableaux?
A+ Kerroch
"AV" a écrit dans le message de news:
Si tes plages commencent toutes en A1 (à adapter), ça pourrait faire :
Sub zz_Somme() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row laSomme = laSomme + Evaluate("Sum(" & "'" & Sheets(i).Name & "'!A"
&
Ldéb &
":A" & Lfin & ")") Next MsgBox laSomme End Sub
PS : Les apostrophes dans la chaîne de l'Evaluate sont là au cas où tes
feuilles
pourraient comporter des noms avec espaces (à éviter) AV
AV
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Je sais pas trop où tu veux en venir mais essaye ça : Sub zz() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row plg = plg & "," & "'" & Sheets(i).Name & "'!A" & Ldéb & ":A" & Lfin Next x = Right(plg, Len(plg) - 1) 'exemples d'utilisations MsgBox Evaluate("sum(" & x & ")") MsgBox Evaluate("average(" & x & ")") MsgBox Evaluate("counta(" & x & ")") End Sub
AV
Le but est de récupérer toutes les ranges dans un tableau
Est-ce plus clair ?
Je sais pas trop où tu veux en venir mais essaye ça :
Sub zz()
laSomme = 0
For i = 1 To 5
Ldéb = 1
Lfin = Sheets(i).[A65536].End(3).Row
plg = plg & "," & "'" & Sheets(i).Name & "'!A" & Ldéb & ":A" & Lfin
Next
x = Right(plg, Len(plg) - 1)
'exemples d'utilisations
MsgBox Evaluate("sum(" & x & ")")
MsgBox Evaluate("average(" & x & ")")
MsgBox Evaluate("counta(" & x & ")")
End Sub
Le but est de récupérer toutes les ranges dans un tableau Est-ce plus clair ?
Je sais pas trop où tu veux en venir mais essaye ça : Sub zz() laSomme = 0 For i = 1 To 5 Ldéb = 1 Lfin = Sheets(i).[A65536].End(3).Row plg = plg & "," & "'" & Sheets(i).Name & "'!A" & Ldéb & ":A" & Lfin Next x = Right(plg, Len(plg) - 1) 'exemples d'utilisations MsgBox Evaluate("sum(" & x & ")") MsgBox Evaluate("average(" & x & ")") MsgBox Evaluate("counta(" & x & ")") End Sub
AV
Daniel.M
Salut Alain,
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre Table = Range(x) après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages discontinues de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne PAS et je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages dans une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou 2-copier une à une les lignes dans Table.
Salutations,
Daniel M.
Salut Alain,
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre
Table = Range(x)
après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages discontinues
de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne PAS et
je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages dans
une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou
2-copier une à une les lignes dans Table.
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre Table = Range(x) après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages discontinues de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne PAS et je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages dans une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou 2-copier une à une les lignes dans Table.
Salutations,
Daniel M.
Kerroch
Effectivement, j'ai resolu mon problème en passant par une range temporaire:
!12 ranges sur 12 feuilles différentes dans Totalrange() For i = 1 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set Totalrange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin) Next i
Sheets("Année").Activate ! feuille temporaire For i = 1 To 12 debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1 Cells(debut, 1).Select Totalrange(i).Copy Destination:¬tiveCell Next i
reste plus qu'à mettre dans un tableau ..... ça à l'air de marcher...
Je regarde depuis peu le forum , et je vous remercie beaucoup pour l'aide que vous apportez aux demandeurs.
Merci encore et bonnes fêtes de fin d'année.
à bientôt très certainement...
Kerroch
"Daniel.M" a écrit dans le message de news:
Salut Alain,
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre Table = Range(x) après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages discontinues
de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne PAS et
je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages dans
une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou 2-copier une à une les lignes dans Table.
Salutations,
Daniel M.
Effectivement, j'ai resolu mon problème en passant par une range temporaire:
!12 ranges sur 12 feuilles différentes dans Totalrange()
For i = 1 To 12
fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row
debut = Sheets(feuille(i)).Range("LbNom").Row + 1
Set Totalrange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin)
Next i
Sheets("Année").Activate ! feuille temporaire
For i = 1 To 12
debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Cells(debut, 1).Select
Totalrange(i).Copy Destination:¬tiveCell
Next i
reste plus qu'à mettre dans un tableau .....
ça à l'air de marcher...
Je regarde depuis peu le forum , et je vous remercie beaucoup
pour l'aide que vous apportez aux demandeurs.
Merci encore et bonnes fêtes de fin d'année.
à bientôt très certainement...
Kerroch
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news:uriUc1kyDHA.4060@TK2MSFTNGP11.phx.gbl...
Salut Alain,
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre
Table = Range(x)
après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages
discontinues
de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne
PAS et
je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages
dans
une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou
2-copier une à une les lignes dans Table.
Effectivement, j'ai resolu mon problème en passant par une range temporaire:
!12 ranges sur 12 feuilles différentes dans Totalrange() For i = 1 To 12 fin = Sheets(feuille(i)).Range("A65536").End(xlUp).Row debut = Sheets(feuille(i)).Range("LbNom").Row + 1 Set Totalrange(i) = Sheets(feuille(i)).Range("A" & debut, "I" & fin) Next i
Sheets("Année").Activate ! feuille temporaire For i = 1 To 12 debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1 Cells(debut, 1).Select Totalrange(i).Copy Destination:¬tiveCell Next i
reste plus qu'à mettre dans un tableau ..... ça à l'air de marcher...
Je regarde depuis peu le forum , et je vous remercie beaucoup pour l'aide que vous apportez aux demandeurs.
Merci encore et bonnes fêtes de fin d'année.
à bientôt très certainement...
Kerroch
"Daniel.M" a écrit dans le message de news:
Salut Alain,
Je sais pas trop où tu veux en venir mais essaye ça :
Je pense commencer à comprendre. Kerroch voudrait mettre Table = Range(x) après ton instruction x = Right(plg, Len(plg) - 1)
et qu'ainsi, un tableau contenant l'ensemble des lignes des plages discontinues
de x seraient ainsi mises bout à bout. Malheureusement, ça NE fonctionne PAS et
je ne vois pas d'autres solutions pour lui que 1-copier toutes les plages dans
une plage temporaire et faire ensuite un Table=Range("PlageTemporaire") ou 2-copier une à une les lignes dans Table.
Salutations,
Daniel M.
Daniel.M
Salut,
Sheets("Année").Activate ! feuille temporaire For i = 1 To 12 debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1 Cells(debut, 1).Select Totalrange(i).Copy Destination:¬tiveCell Next i
Peut être remplacé par : ' Surtout, pas de Activate : lent For i = 1 To 12 Totalrange(i).Copy Destination:=Sheets("Année") _ .Range("A65536").End(xlUp)(2) Next i
reste plus qu'à mettre dans un tableau ..... ça à l'air de marcher...
Tu fais: Table = Sheets("Année").Range("A1").CurrentRegion.Value
Je regarde depuis peu le forum , et je vous remercie beaucoup pour l'aide que vous apportez aux demandeurs.
Au plaisir,
Daniel M.
Salut,
Sheets("Année").Activate ! feuille temporaire
For i = 1 To 12
debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Cells(debut, 1).Select
Totalrange(i).Copy Destination:¬tiveCell
Next i
Peut être remplacé par :
' Surtout, pas de Activate : lent
For i = 1 To 12
Totalrange(i).Copy Destination:=Sheets("Année") _
.Range("A65536").End(xlUp)(2)
Next i
reste plus qu'à mettre dans un tableau .....
ça à l'air de marcher...
Tu fais:
Table = Sheets("Année").Range("A1").CurrentRegion.Value
Je regarde depuis peu le forum , et je vous remercie beaucoup
pour l'aide que vous apportez aux demandeurs.
Sheets("Année").Activate ! feuille temporaire For i = 1 To 12 debut = ActiveSheet.Range("A65536").End(xlUp).Row + 1 Cells(debut, 1).Select Totalrange(i).Copy Destination:¬tiveCell Next i
Peut être remplacé par : ' Surtout, pas de Activate : lent For i = 1 To 12 Totalrange(i).Copy Destination:=Sheets("Année") _ .Range("A65536").End(xlUp)(2) Next i
reste plus qu'à mettre dans un tableau ..... ça à l'air de marcher...
Tu fais: Table = Sheets("Année").Range("A1").CurrentRegion.Value
Je regarde depuis peu le forum , et je vous remercie beaucoup pour l'aide que vous apportez aux demandeurs.