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 :

[VBA-E] Problème de numérotation de lignes


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut [VBA-E] Problème de numérotation de lignes
    Bonjour,

    Je dispose d'un fichier contenant un événement sur une ligne, chaque événement est numéroté sur une même colonne (ex: 1 a 1000).
    A l'aide d'une macro, j'ai automatisé cette numérotation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f.Range(Cells(l, 1), Cells(l, 1)).Value = f.Range(Cells(l - 1, 1), _
        Cells(l - 1, 1)).Value + 1
    Où "l" est la nouvelle ligne où il y aura le nouvel événement.

    Cependant à la suite de saisi manuelle, la numérotation des lignes n'est plus croissante.

    Donc pour que cela fonctionne, il faurait que pour la nouvelle ligne le numéro soit le Max de la colonne + 1.
    Et là je bloque, je ne trouve pas de fonction maximum.

    Est-ce que quelqu'un pourrait m'aider?

    Merci

  2. #2
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    idéalement, il faudrait trier tes évènements par id croissant et ajouter a la fin de la liste un id+1 car la derniere ligne contiendrait le max.

  3. #3
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Comme le dit Commodore_Psykopate, tu peux trier ton tableau sur l'id ou alors utiliser la fonction MAX d'Excel.

    Une autre stratégie, consiste à interdire à l'utilisateur de créer/modifier les id.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Merci,

    j'ai essayé la fonction Max d'Excel, j'ai essayer de l'enregistrer en Macro mais je n'arrive pas à l'adapter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.Range(Cells(l, 1), Cells(l, 1)).Value = "=MAX(R[-l]C:R[-1]C)+1"
    Mais cela ne fonctionne pas

    Et je ne peux pas interdire les modifications à l'utilisateur

  5. #5
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    il ne faut pas utiliser Cells.Value, mais Cells.FormulaLocal

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Merci ça fonctionne

  7. #7
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.Range(Cells(l, 1), Cells(l, 1)).FormulaR1C1 = "=MAX(R[-l]C:R[-1]C)+1"
    -edit- pardon, FormulaR1C1, pas FormulaLocal.
    je n'avais pas vu que tu faisais des formules relatives

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Salut,

    en fait la formule utilisée ne marche pas très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.Range(Cells(l, 1), Cells(l, 1)).FormulaR1C1 = "=MAX(R[-95]C:R[-1]C)+1"
    Je voudrais que la formule me donne la plus grande valeur contenu dans les cellules de la 1ère colonne de la ligne 1 à (l - 1) et là ça me donne la plus grande valeur contenu dans les 94 lignes précédentes.

    Si quelqu'un pouvait m'aider,

    Merci

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    essai :

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Salut,

    en fait j'ai pris juste les 5 derniéres lignes et j'ai effectué un tri a l'ouverture du dossier.

    Ca marche

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 15h13
  2. [VBA-E] Problème de remplissage de lignes
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/08/2006, 12h37
  3. [VBA-E] Problème de suppression de lignes
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 15h01
  4. [VBA-E] Problème d'autorisation à certaines lignes
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 20/07/2006, 14h53
  5. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 18h27

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