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 - Après suppression d'une ligne via une macro, réinitialiser la numérotation des lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut VBA - Après suppression d'une ligne via une macro, réinitialiser la numérotation des lignes
    Bonjour à tous,

    Me voilà de nouveau afin de compléter la database de"www.developpez.net" d'une nouvelle question !!!

    Si je ne me trompe pas, je n'ai pas réussi à trouver une réponse à mon problème.
    Mon problème est le suivant, lorsque j'insère une ligne dans mon tableau via ma macro "ajouter une ligne", j'ai glissé le code suivant qui permet d'ajouter un numéro d'identification:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ActiveCell.Offset(-1, -1).Value = "N° de l'A.O" Then
    ActiveCell.Offset(0, -1).Value = 1
    Else
    ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value + 1
    End If
    Jusque la, tout va bien !
    Sauf que si je supprime une ligne via ma macro "supprimer une ligne", la numérotation de mon tableau ne s'actualise pas. Ce qui veut dire que si je supprime la ligne numero 4, dans ma numérotation ,nous aurons 1,2,3,5.
    Je suis sur que le code n'est pas sorcier mais je n'arrive pas à intégrer ceci dans mes lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton2_Click()
    Dim A As Integer
    A = ComboBox6.ListIndex + 1
    Feuil1.Unprotect
     
             If Me.ComboBox6.ListCount >= 0 And A > 0 Then
               'Supprime la ligne
               Sheets("Base de données").[BASEDEDONNEES].Rows(A).Delete
             End If
    Feuil1.Protect
    Unload BASEDEDONNEESS
    End Sub
    Quelqu'un peut il m'aider ?!

    Merci encore !!!

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour,

    inutile de réinventer la roue au risque qu'elle fusse carrée en VBA alors qu'une simple formule de feuille de calculs …

    Voir donc l'aide Excel par exemple de la fonction LIGNE !


    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut
    J'ai déjà pensé à utiliser cette solution, c'est à dire à écrire dans ma première cellule "numéro de ligne" : =Ligne(A1) et ainsi dérouler dans le reste de mes cellules pour afficher la numérotation.
    Mon problème, c'est que comme l'outil que je crée sera destiné à d'autres utilisateurs, je protège ma feuille de toute modification apporter via leurs manipulations.
    D'où la nécessité que la numérotation soit actualisée automatiquement...

    Pensez vous à une manip autre que celle citée ?

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    C'était juste pour éviter une usine à gaz et au passage il suffit juste de =LIGNE()

    Car en VBA même une formule de calculs peut être utilisée !

    Et qui plus est cela s'actualise justement automatiquement en cas de suppression d'une ligne, quel confort !

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut
    Très bien !

    Mais c'est possible d'avoir un exemple ?

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    C'est à dire ?!
    Tu as déjà tout ce qu'il faut : la formule identique à insérer dans la colonne de numérotation …

    Si une ligne est supprimée, il n'y a rien à faire si la feuille est bien en mode de calcul automatique !

    Et en cas d'insertion, juste ajouter la formule dans la cellule via la propriété FormulaLocal
    Sans compter la manipulation en activant au préalable l'Enregistreur de macros livrant une base de code sur un plateau !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/06/2015, 09h44
  2. Réponses: 2
    Dernier message: 17/04/2007, 17h14
  3. Numérotation des lignes dans une requête
    Par zoom61 dans le forum Access
    Réponses: 5
    Dernier message: 24/10/2006, 10h35
  4. Modifier l'enseble des lignes d'une colonne d'une table
    Par bencheikh dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/07/2006, 21h46
  5. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 12h53

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