Mon souci du jour : Dans un fichier de plusieurs milliers (voire dizaines de...), je dois faire un traitement en fonction du contenu des cellules de la colonne M.
Seules certaines cellules de cette colonne sont non vides.
Comment expliquer Í VBA, une fois le traitement d'une ligne effectué, d'aller directement Í la prochaine (ou précédente) cellule non vide pour gagner du temps ?
Je pensais définir une plage discontinue contenant toutes ces cellules non vides.....mais je ne trouve pas la syntaxe correspondante (et Internet ne m'a pas beaucoup aidé sur ce coup !)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 05/04/22 Í 09:33, ThierryP a écrit :
Bonjour le forum, bonjour Denis ! Mon souci du jour : Dans un fichier de plusieurs milliers (voire dizaines de...), je dois faire un traitement en fonction du contenu des cellules de la colonne M. Seules certaines cellules de cette colonne sont non vides. Comment expliquer Í VBA, une fois le traitement d'une ligne effectué, d'aller directement Í la prochaine (ou précédente) cellule non vide pour gagner du temps ? Je pensais définir une plage discontinue contenant toutes ces cellules non vides.....mais je ne trouve pas la syntaxe correspondante (et Internet ne m'a pas beaucoup aidé sur ce coup !) Merci d'avance ThierryP
Bonjour, J'ai supposé que le contenu de la colonne M contenait des constantes de type texte ou numérique. '------------------------------------ Sub test() Dim Rg As Range, C As Range With Worksheets("Feuil1") 'Nom Feuille Í adapter Set Rg = .Range("M1:M" & .Range("M" & .Rows.Count).End(xlUp).Row) Set Rg = Rg.SpecialCells(xlCellTypeConstants, 3) End With For Each C In Rg MsgBox C.Address Next End Sub '------------------------------------ MichD
Le 05/04/22 Í 09:33, ThierryP a écrit :
Bonjour le forum, bonjour Denis !
Mon souci du jour : Dans un fichier de plusieurs milliers (voire dizaines de...), je dois faire un traitement en fonction du contenu des cellules de la colonne M.
Seules certaines cellules de cette colonne sont non vides.
Comment expliquer Í VBA, une fois le traitement d'une ligne effectué, d'aller directement Í la prochaine (ou précédente) cellule non vide pour gagner du temps ?
Je pensais définir une plage discontinue contenant toutes ces cellules non vides.....mais je ne trouve pas la syntaxe correspondante (et Internet ne m'a pas beaucoup aidé sur ce coup !)
Merci d'avance
ThierryP
Bonjour,
J'ai supposé que le contenu de la colonne M contenait des constantes de
type texte ou numérique.
'------------------------------------
Sub test()
Dim Rg As Range, C As Range
With Worksheets("Feuil1") 'Nom Feuille Í adapter
Set Rg = .Range("M1:M" & .Range("M" & .Rows.Count).End(xlUp).Row)
Set Rg = Rg.SpecialCells(xlCellTypeConstants, 3)
End With
For Each C In Rg
MsgBox C.Address
Next
End Sub
'------------------------------------
Bonjour le forum, bonjour Denis ! Mon souci du jour : Dans un fichier de plusieurs milliers (voire dizaines de...), je dois faire un traitement en fonction du contenu des cellules de la colonne M. Seules certaines cellules de cette colonne sont non vides. Comment expliquer Í VBA, une fois le traitement d'une ligne effectué, d'aller directement Í la prochaine (ou précédente) cellule non vide pour gagner du temps ? Je pensais définir une plage discontinue contenant toutes ces cellules non vides.....mais je ne trouve pas la syntaxe correspondante (et Internet ne m'a pas beaucoup aidé sur ce coup !) Merci d'avance ThierryP
Bonjour, J'ai supposé que le contenu de la colonne M contenait des constantes de type texte ou numérique. '------------------------------------ Sub test() Dim Rg As Range, C As Range With Worksheets("Feuil1") 'Nom Feuille Í adapter Set Rg = .Range("M1:M" & .Range("M" & .Rows.Count).End(xlUp).Row) Set Rg = Rg.SpecialCells(xlCellTypeConstants, 3) End With For Each C In Rg MsgBox C.Address Next End Sub '------------------------------------ MichD
ThierryP
Bonjour Denis! Toujours aussi rapide..... En fait, j'avais annulé ce message dans la foulée pensant avoir trouvé une solution... Mais en fait je devais quand même boucler pour tester le contenu des cellules, donc le gain n'y est pas vraiment ! Et ta réponse est exactement ce qu'il me fallait, comme d'habitude :-) Encore un grand merci, ThierryP P.S : est-ce que ça t'arrive d'aller manger, dormir, prendre une douche, enfin n'importe quoi qui t'éloigne de ton écran ? Parce qu'Í chaque fois, tu réponds dans la minute qui suit !!!!!!! Mais je ne vais pas me plaindre de ton assiduité, qui me sauve la mise !!!!!
MichD
Bonjour Denis!
Toujours aussi rapide..... En fait, j'avais annulé ce message dans la foulée pensant avoir trouvé une solution... Mais en fait je devais quand même boucler pour tester le contenu des cellules, donc le gain n'y est pas vraiment !
Et ta réponse est exactement ce qu'il me fallait, comme d'habitude :-)
Encore un grand merci,
ThierryP
P.S : est-ce que ça t'arrive d'aller manger, dormir, prendre une douche, enfin n'importe quoi qui t'éloigne de ton écran ? Parce qu'Í chaque fois, tu réponds dans la minute qui suit !!!!!!!
Mais je ne vais pas me plaindre de ton assiduité, qui me sauve la mise !!!!!
Bonjour Denis! Toujours aussi rapide..... En fait, j'avais annulé ce message dans la foulée pensant avoir trouvé une solution... Mais en fait je devais quand même boucler pour tester le contenu des cellules, donc le gain n'y est pas vraiment ! Et ta réponse est exactement ce qu'il me fallait, comme d'habitude :-) Encore un grand merci, ThierryP P.S : est-ce que ça t'arrive d'aller manger, dormir, prendre une douche, enfin n'importe quoi qui t'éloigne de ton écran ? Parce qu'Í chaque fois, tu réponds dans la minute qui suit !!!!!!! Mais je ne vais pas me plaindre de ton assiduité, qui me sauve la mise !!!!!