Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déchiffrer cette macro excel + livres VBA

Y1982

XLDnaute Nouveau
Bonjour,
J'ai récupéré une macro (qui est en bas du message) et je voudrais comprendre une ligne avec laquelle j'ai du mal. Cette ligne est :
dernLigne = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Count - 1
je voudrais comprendre le "+ " et le ".count -1" je sais que je part de la dernière ligne non vide et que je remonte avec un step -1 mais pourquoi le faire compter à ce moment ?
Autre chose : For I = dernLigne To 1 Step -1
à quoi sert le "To 1" c'est pour le faire aller jusqu'à 1 en remontant ? Pourtant je n'ai aucune variable égale à 1.
Dernière chose, je suis un grand amateur débutant et je voudrais apprendre à faire des macros pour Excel. Utilisez les fonctions Excel, des userforms (liste et msgbox), mais je sais à peine déclarer mes variables et je ne connais ps le vocabulaire. Avez-vous un livre à me conseiller, un site pour les nuls ou encore est-ce que l'aide sous Microsoft VB Editor suffit ?
Merci beaucoup.
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/11/2009 par ygail
'
Dim myCtrl, dernLigne, I

'détermine le numéro de la dernière ligne utilisée
dernLigne = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Count - 1
'désactive la mise à jour de l'écran afin d'accélérer les traitements
Application.ScreenUpdating = False

'Pour toutes les lignes en partant de la dernière
For I = dernLigne To 1 Step -1

'La fonction Excel CountA correspond à =NBVAL
If Application.WorksheetFunction.CountA(Range("A" & I & ":b" & I)) = 0 Then
Rows(I).Hidden = True
Shift:=xlUp
End If
suivant:
Next I
End Sub
Yohann
 

kjin

XLDnaute Barbatruc
Re : Déchiffrer cette macro excel + livres VBA

Bonjour,
Sorti de son contexte, le code n'a pas de sens
Pour ma part, la denière ligne, toutes colonnes confondues serait
Code:
dernLigne = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
Comme indiqué, la boucle s'effectue de la ligne "derligne" à 1
Pourquoi chercher ailleurs ce que tu trouveras sur xld ?
A+
kjin
 

JNP

XLDnaute Barbatruc
Re : Déchiffrer cette macro excel + livres VBA

Bonjour le fil ,
Très intéressant ce post, je ne connaissais pas UsedRange et j'ai été voir sur l'aide. C'est vrai que c'est beaucoup plus pratique que End en partant de la dernière ligne ou colonne, surtout quand on passe de 2003 à 2007...
Donc en utilisant UsedRange, la bonne ligne est
Code:
dernLigne = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
Maintenant, quelques commentaires Bon courage
 

Discussions similaires

Réponses
2
Affichages
92
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…