• Initiateur de la discussion Initiateur de la discussion greg0ire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

greg0ire

Guest
Bonjour à tous, je suis en train de m'escrimer pour créer une range en faisant des unions de Range sur plusieurs colonnes. Je voudrais savoir si c'est possible au moins avant de me lancer dedans...voici mon code
Code:
Function colUnion(colName As String) As Range
    Dim numCol As Integer
    numCol = 0
    Set colUnion = ThisWorkbook.Sheets("Menu").Cells(1, 1)
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name Like "*.txt" Then
            If numCol = 0 Then
                Do 'find numCol
                    numCol = numCol + 1
                    Debug.Print sh.Columns(numCol).Cells(1, 1).Value
                Loop While Not sh.Columns(numCol).Cells(1, 1).Value = colName
            End If
            Set colUnion = Application.Union(colUnion, colSelection(sh.Columns(numCol)))
        End If
    Next
End Function
 
Re : range multifeuilles

bonjour Grégoire,

je pense que si tu nous disais ce que tu veux faire exactement, on pourrait t'aider plus facilement, mais là, j'avoue que je ne comprends pas ou tu veux en venir avec ce code 😕
 
Re : range multifeuilles

Plus clairement, j'ai plusieurs feuilles dans mon classeur, et elles ont toutes la même structure, par exemple la colonne D de n'importe quelle feuille correspond à un nom. Si je veux faire des stats sur ces noms (pour savoir le nombre d'occurrences de chaque, ou pour obtenir la liste des différents noms), il me faut parcourir toutes la colonne D de chaque feuille. J'aimerais savoir si on peut créer une seule range à partir de ces colonnes qu'il ne me resterait plus quà parcourir... En reprenant l'exemple, je voudrais la range qui correspond à l'union des colonnes D de mon workbook.
 
Re : range multifeuilles

tu peux, via VBa parcourir toutes les colonnes D de chaque feuilles :

dim lafeuille as worksheets
dim lacellule as range
dim res as integer

for each lafeuille in activeworkbook.worksheets
for each lacellule in lafeuille.range("D : D")

if (lacellule.value="Nom blabla") then res=res+1

next
next

c'est ca que tu veux !?
 
Re : range multifeuilles

Ca, c'est ce que j'ai fait...et à chaque fois, ca me fait deux for each imbriques, c'est pour ca que j'essaie de faire une fonction qui me retourne un range qui contiendrait tout ca... ca pourrait encore me servir pour mettre ma colonne en sourceData d'une pivot table.
 
Re : range multifeuilles

je ne sais pas si c'est plus lourd à traiter que de faire fusionner toutes les collones X de chaque feuille en une seule et en suite de traiter cette immense colonne (65535 cellules c'est tout . . . lol) 😛
 
Re : range multifeuilles

En fait j'ai fait une fonction qui sélectionne une colonne en s'arrêtant quand elle rencontre des blancs, donc c'est des colonnes plus petites... mais peut-être le problème est-il justement là : si les colonnes sont trop grandes ca ne marchera pas, alors on interdit les range multifeuilles....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
Réponses
4
Affichages
732
Réponses
15
Affichages
782
Retour