tableau macro excel

  • Auteur de la discussion superromu
  • Date de début

superromu

Nouveau membre
bonjour,

je voudrais parcourir un tableau excel, type C:3 jusqu'a N:18 par exple, mais en fait le tableau est susceptible de changer, ajout/suppr de ligne ou de colonne,
pour l'instant je fais
For Each c In Range("C3:N18")
mon code
next
le code ne doit pas etre modifier, le ficher etant a mettre a disposition d autres utilisateurs qui ne doivent pas toucher au code.
y a t il une fonction bound comme pour les arrays ?

a noter que le tableau contient des cases vides, et donc un parcours style des qu il y a une case vide je change de ligne ne marche pas

je suis dispo pour donner plus d explications
merci d avance
Romu
 

superromu

Nouveau membre
Private Sub calculer_occurrence_Click()
' calcul nb ligne et nb colonne
For Each c In Range("B3:B50")
If c.Value() = "D" Then
nb_ligne = c.Row() - 1
Exit For
End If
Next
For Each c In Range("C2:AZ2") ' utilité ?
If c.Value() = 0 Then
nb_colonne = c.Column() - 1
Exit For
End If
Next
avec ca j ai mon nombre de ligne et de colonne, en fait je lis les titre des lignes et colonnes, mais je ne sais pas faire le N18 (nb_col;nb_lig)
(le C3 est invariant)

For Each c In Range("C3:N18")
mon code
next
 

galopin01

Habitué
bonsoir,
Comment on "devine" qu'il faut s'arrêter à 18 ou a 50 lignes
Est ce la dernière ligne écrite,
Este-ce la dernière ligne avant un total.
D'une manière ou d'une autre il faut qu'on sache comment dire à la macro : Là on s'arrête !

Si tu veux considérer la totalité d'une zone intégrant la dernière ligne et la dernière colonne contenant des données, il faut utiliser :

For Each c In Range("C3:" & ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address)
toncode
Next

Ok ?
 

superromu

Nouveau membre
apres bcp de surf sur le net a propos des macro j ai finallement trouvé:

nb_ligne et nb_colonne sont repris de la maniere que j ai expliqué precedement mais je ne connaissais pas la formule range pour faire le parcours du tableau et en fait il suffit de faire :

For Each c In Range(Cells(3, 3), Cells(nb_ligne, nb_colonne))
code;
next

mon tableau est de la forme:
col1 | col2 | col3 | col4 |
l1 x
l2 x x
l3 x
l4 x x

merci de ta reponse
Romu
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 062
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut