1 pièce(s) jointe(s)
Parcourir ligne & colonne
Bonjour,
Voilà ma question , question basique pour certains je pense mais après plusieurs recherche je galère à trouver une réponse.
je m'explique j'ai un tableau :
Pièce jointe 225469
Un UserForm avec ce code (Pour info Class_Liste est une classe que j'ai crée)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| ' Oblige la déclaration des variables au préalable
Option Explicit
'****
' Déclaratio objet
'****
' Déclare la variable objet Worksheet
Dim WsBookTrans As Worksheet
' Déclare la variable objet Classe Liste
Dim Liste_Book As Classe_Liste
' Titre UserForm
Const Titre_UFbook As String = ".::: Gestion des bookmakers"
' Coin gauche début Tableau Bookmaker
Const Deb_Book As String = "B18"
'
'****
' A l'activation de l'USERFORM
'****
Private Sub UserForm_Initialize()
Set WsBookTrans = Worksheets("Bookmakers & transactions")
Init_Liste WsBookTrans, Deb_Book, Liste_Book
End Sub |
et un module fonction (d'où provient l'érreur)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
'****
' Construis une liste
'****
Sub Init_Liste(ByVal Ws As Worksheet, ByVal Deb_Liste As String, ByRef Liste As Classe_Liste)
Dim ind_ligne As Integer
Dim ind_col As Integer
'Il faut trouver les indices des dernières lignes et colonnes
Dim DerniereLigne As Integer
DerniereLigne = Ws.Range(Deb_Liste).CurrentRegion.End(xlDown).Row
MsgBox DerniereLigne
Dim DerniereColonne As Integer
DerniereColonne = Ws.Range(Deb_Liste).CurrentRegion.End(xlToRight).Column
End Sub |
L'erreur vient du fait que si j'utilise CurrentRegion si le tableau est vide cela produit une erreur !!!
Et de plus je voudrai savoir comment se déplacé dans une feuille sachant que le tableau ne commence pas en 1ere colonne ni 1ere ligne
Merci de votre aide (Message un peu long mais je prefere etre clair)
Parcourir ligne + colonne
Merci pour le test j'ai modifié le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| '****
'****
' Construis une liste
'****
Sub Init_Liste(ByVal Ws As Worksheet, ByVal Deb_Liste As String, ByRef Liste As Classe_Liste)
Dim ind_lig As Integer
Dim ind_col As Integer
Dim DerniereLigne As Integer
Dim DerniereColonne As Integer
If (Ws.Range(Deb_Liste) = Null Or Ws.Range(Deb_Liste) = "") Then
' Poser les traitements si la cellule est vide
MsgBox "Liste vide"
Else
' Il faut trouver les indices des dernières lignes et colonnes
DerniereLigne = Ws.Range(Deb_Liste).CurrentRegion.End(xlDown).Row
DerniereColonne = Ws.Range(Deb_Liste).CurrentRegion.End(xlToRight).Column
' MsgBox DerniereLigne & " " & DerniereColonne
For ind_lig = Ws.Range(Deb_Liste).Row To DerniereLigne
For ind_col = Ws.Range(Deb_Liste).Column To DerniereColonne
MsgBox Ws.Range(Cells(ind_lig, ind_col)).Value
Next ind_col
Next ind_lig
End If
End Sub |
La ligne en rouge m'affiche une erreur d'éxécution 1004
La méthode rage de l'objet worksheet a échoué