IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Numerotation de ligne visible


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut Numerotation de ligne visible
    bonjour,

    Je sais numéroter des lignes de 1 à ... en partant d'une ligne donné avec la commande , mais je voudrais pouvoir numeroter que les lignes visible et non pas les lignes qui sont masqué qui me provoque un trou dans la numérotation, qui me fait sauter la numerotation de deux crans si je masque deux lignes.
    Je pense qu'il serai faisable de faire ça avec une foncfion vba mais je vois pas comment, si quelqu'un peut m'aider.

    Merci d'avance, en esperant que je suis comprehensible.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Integer
    Dim Cel As Range
     
    For Each Cel In Range("A1:A30").Cells  'A Adpater
    If Not Cel.EntireRow.Hidden Then i = i + 1
    Cel.Value = i
    Next Cel

  3. #3
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Merci mercatog

    Ton code fonctionne parfaitement dans une procedure vba mais il me le faudrait dans une fonction que je puisse l'utiliser dans une cellule de mon classeur, qui s'incrementerait lors d'une copie de cellule et quand je masque une partie des cellules copier que la numerotation se reactualise et inversement quand je reaffiche les lignes.

    J'espere que tu me suis

  4. #4
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut mettre la mise à jour
    Bonjour,

    Mercatog t'as donné la réponse il suffit de l'adapter : --> un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Function Numerotation(ByVal Target As Range)
     
    Dim nLig As Integer, nCol As Integer
     
    nLig = Target.Row
    nCol = Target.Column
     
    Application.Calculation = xlCalculationManual
     
    For Each Cel In Range(Cells(2, nCol), Cells(nLig, nCol)).Cells 'A Adpater
    If Not Cel.EntireRow.Hidden Then i = i + 1
    Next Cel
     
    Numerotation = i
     
    Application.Calculation = xlCalculationAutomatic
    End Function

  5. #5
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    bonjour et merci casavba

    j'avais essayer mais pas reussi.

    Parcontre si je masque une parti des cellules copié, le recalcul ne se fait pas automatiquement, il faut que je recopie la formule vers le bas pour que ce soit recalculé.

  6. #6
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    oui, essaie maintenant le code que j'ai modifié:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Function Numerotation(ByVal Target As Range)
     
    Dim nLig As Integer, nCol As Integer
     
    nLig = Target.Row
    nCol = Target.Column
     
    Application.Volatile
    Application.Calculation = xlCalculationManual
     
    For Each Cel In Range(Cells(2, nCol), Cells(nLig, nCol)).Cells 'A Adpater
    If Not Cel.EntireRow.Hidden Then i = i + 1
    Next Cel
     
    Numerotation = i
     
    Application.Calculation = xlCalculationAutomatic
    End Function

  7. #7
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    j'ai refais un essai avec le nouveau code, le recalcul se fait mais seulement apres avoir fait une action sur la feuille et non pas directement apres avoir fait le masquage ou le reaffichache des lignes

  8. #8
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    T'as mis

    Parce que chez moi ça marche très bien

  9. #9
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Meme avec j'ai toujour la meme chose, je suis en excel 2002, ce ne serai pas une difference de version?

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai repris la fonction proposé par Casavba,
    je l'ai mise dans un module public
    avec ce code, la fonction réagit comme tu le souhaite

    en B1 j'ai mis =Numerotation(A1)
    j'ai tiré vers le bas
    je masque et affiche les lignes, la fonction re numérote bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Explicit
     
    Public Function Numerotation(ByVal Target As Range)
    Dim Cel As Range
    Dim nLig As Integer, nCol As Integer, i As Integer
     
    nLig = Target.Row
    nCol = Target.Column
     
    Application.Volatile
    Application.Calculation = xlCalculationManual
     
    For Each Cel In Range(Cells(1, nCol), Cells(nLig, nCol)).Cells 'A Adpater
    If Not Cel.EntireRow.Hidden Then i = i + 1
    Next Cel
     
    Numerotation = i
     
    Application.Calculation = xlCalculationAutomatic
    End Function

  11. #11
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Merci encore a vous deux, mais meme avec le dernier code de mercatog rien y fait je dois avoir un petit parametrage quelque part qui fout la pagaille, je ne vois plus que ça ou la version d'excel car sur les 3 pc que j'ai a dispo avec tous excel 2002 le resultat est identique.

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sans gros mots s'il vous plait;
    Édite ton message
    tu peux joindre ton fichier? (ou une partie)

    Edit, je te joint un fichier exemple

  13. #13
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Ok pas de soucis message corrigé.

    Je joint donc le fichier
    Fichiers attachés Fichiers attachés

  14. #14
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    J'ai testé avec ton fichier c'est pareil qu'avec le mien !!

  15. #15
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Et ton fichier fonctionne chez moi
    si tu enlève cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'Application.Calculation = xlCalculationManual
    qu'st ce que ça donnerait

  16. #16
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Toujour pareil, aucun changement.

  17. #17
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bon, regarde du côté Outils>Option de ton fichier excel
    onglet Calcul
    Coche Automatique
    et refais le test

  18. #18
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    Non desolé j'avais deja vérifier et il est bien coché le soucis ne vient pas de là.

  19. #19
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    bonjour,

    Je viens de tester sur Excel 2003, pas de problème chez moi, fonctionne parfaitement.

    Pour partir de 1 (j'ai une ligne de titre) j'ai juste remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' nLig = Target.Row
    nLig = Target.Row - 1


    Nb : Sympa ce code, j'aime bien

  20. #20
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    La derniére chose que je puisse en deduire c'est que c'est bien un probleme de version.
    Donc si quelqu'un voit comment contourner le probléme !

Discussions similaires

  1. numerotation des lignes
    Par wajim dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/05/2007, 15h53
  2. Visual C++ 6.0: numerotation des lignes ?
    Par molo2003 dans le forum Visual C++
    Réponses: 6
    Dernier message: 14/08/2006, 16h03
  3. SynEdit: Numerotation des lignes
    Par Mathelec dans le forum Delphi
    Réponses: 2
    Dernier message: 04/07/2006, 22h19
  4. [VBA-E] Imprimer uniquement les lignes visibles
    Par Sebastien_INR59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/06/2006, 16h23
  5. determiner les ligne visible ds un RichEdit
    Par hhfr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2002, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo