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 :

Incrémentation numéro colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut Incrémentation numéro colonne
    Bonjour à tout le Forum,

    J'ai quelques petits problèmes avec mon code VBA.

    J'ai créé un classeur XLS qui appel une Userform dès le clique sur un CommandButton.

    Sur cette Userform se trouvent plusieurs TextBox et list Box.

    Ensuite, à partir du moment ou je clique sur un CommandButton (situé sur ma Userform), les informations contenues dans les TextBox se recopient automatiquement dans un tableau préalablement tracé (de la colonne B à M).

    A chaque appel et saisie sur ma Userform, les informations se recopient à la suite du tableau. Avec le code suivant:

    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
    Set cellule = Worksheets("Actions à mener").Range("B5")
     
    Do While Not IsEmpty(cellule)
      Set cellule = cellule.Offset(1, 0)
    Loop
     
    cellule.Value = UserForm1.Emetteur.Value
    cellule.Offset(0, 1).Value = Date
    cellule.Offset(0, 2).Value = UserForm1.Ligne.Value
    cellule.Offset(0, 3).Value = UserForm1.Machine.Value
    cellule.Offset(0, 4).Value = UserForm1.Service.Value
    cellule.Offset(0, 5).Value = UserForm1.TypeAction.Value
    cellule.Offset(0, 6).Value = UserForm1.Trav.Value
    cellule.Offset(0, 7).Value = UserForm1.Date1.Value
     
    MsgBox "La saisie est términée!"
    Je souhaiterai qu'à chaque clique sur mon CommandButton de ma Userform, un numéro apparaisse dans la colonne 'A' (et s'incrémente à chaque clique).

    Mille merci à ceux qui pourront m'éclairer.



    Bonne fin de journée

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    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
    Set cellule = Worksheets("Actions à mener").Range("B5")
     
    Do While Not IsEmpty(cellule)
      Set cellule = cellule.Offset(1, 0)
    Loop
    cellule.offset(0, -1) = cellule.row - 4 ' le 4 parceque tes enregistrements commencent à 5
    cellule.Value = UserForm1.Emetteur.Value
    cellule.Offset(0, 1).Value = Date
    cellule.Offset(0, 2).Value = UserForm1.Ligne.Value
    cellule.Offset(0, 3).Value = UserForm1.Machine.Value
    cellule.Offset(0, 4).Value = UserForm1.Service.Value
    cellule.Offset(0, 5).Value = UserForm1.TypeAction.Value
    cellule.Offset(0, 6).Value = UserForm1.Trav.Value
    cellule.Offset(0, 7).Value = UserForm1.Date1.Value
     
    MsgBox "La saisie est términée!"
    personnellement j'aurais ecrit comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim ligne as long
    with Sheets("Actions à mener")
           ligne = .range("B65536").end(xlup).row + 1
           .range("A" & ligne) = ligne - 4
           .range("B" & ligne) = UserForm1.Emetteur.Value
           .range("C" & ligne) = date
           .range("D" & ligne) = UserForm1.Ligne.Value
    etc, etc
    End with
    msgbox "saisie terminée'
    Beaucoup plus rapide, pas de select, pa besoin d'activer ou selectionner la feuille

    Bonne journée

  3. #3
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Ok j'essayeré ta simplification c'est vrai après tout pour quoi se compliquer!!

    Mais da dans ta solution tu ne pas pas dit comment incrémenter un numéro auto en colonne "A" à chaque nouvelle saisie si?


    Merci

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           .range("A" & ligne) = ligne - 4
    dans le post precedent tu as ca, normalement ca devrait le faire

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Merci beaucoup c'est nikel

    Est ce que tu sais si c'est possible d'empecher les doublons? C'est à dire que si la valeur 5 a déja été atribué à une ligne elle ne puisse pas l'être à une autre???

    C'est peut être trop compliqué je c'est pas merci

  6. #6
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    Normalement, il ne peut y avoir des doublons que si tu supprimes une ligne

    dans ce cas, tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A" & ligne).formulalocal = "=ligne()-4"
    Au lieu d'avoir une valeur tu as une formule, l'inconvenient c'est que tu renumerote toutes les lignes

    Autre solution : Creer une feuile Param
    en A1 metre 0 ou 100 par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sheets("Param").range("A1") = sheets("Param").range("A1") + 1
    .range("A" & ligne) = sheets("Param").range("A1")

Discussions similaires

  1. [XL-2003] Incrémenter numéro de la colonne
    Par Tintou dans le forum Excel
    Réponses: 2
    Dernier message: 18/11/2009, 08h30
  2. incrémentation automatique colonne
    Par masterdba dans le forum PL/SQL
    Réponses: 6
    Dernier message: 11/03/2009, 18h26
  3. Incrémenter valeur colonne
    Par cjacquel dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/11/2007, 17h14
  4. [Requête] Incrémentation numéro dans une requête
    Par lito74 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 19/04/2007, 19h06
  5. Incrémentation "numéro automatique" defaillante
    Par maryola dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2006, 13h19

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