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 automatique à l'aide d'une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Par défaut Incrémentation automatique à l'aide d'une macro
    Bonjour,

    J'ai un tableau Excel avec une ligne = un courrier.
    Les courriers reçus ont donc chacun un numéro (colonne B) et peuvent éventuellement nécessiter une réponse.

    - Si le courrier ne nécessite pas de réponse, la colonne C (Numéro d'indice) reste vide.
    - Si le courrier nécessiter une réponse, la colonne C est remplie.

    Par exemple, je reçois un courrier, le numéro 1 lui est affecté (colonne B).
    Si le courrier ne nécessite pas de réponse, la cellule C reste vide et le prochain courrier aura le numéro 2 à la ligne suivante.
    Si le courrier nécessite une réponse, nous aurons en colonne C la valeur 1_1, puis la valeur 1_2 pour la réponse (à la ligne d'en dessous).

    Il faudrait en fait que ma colonne B soit remplie automatiquement.
    J'utilise donc la fonction Stxt qu'il faut que j'intègre dans ma macro.
    Voici mon code :
    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
    21
    22
    23
    24
    25
    Sub IncrementationNumOrdre()
     
    Dim i As Integer
    Dim j As Integer
    Dim wsSource As Worksheet
    Dim derniereLigne As Integer
     
     
    Set wsSource = Worksheets("Données")
    j = 1
    derniereLigne = Range("A" & Rows.Count).End(xlUp).Row
     
     
    For i = 6 To derniereLigne
        If wsSource.Cells(i, "C").Value <> "" Then
            wsSource.Range("B", i) = WorksheetFunction.Mid(Range("C" & i), 1, 1)
            j = WorksheetFunction.Mid(Range("C" & i), 1, 1)
        Else
            wsSource.Cells(i, "B") = j
            j = j + 1
        End If
    Next i
     
     
    End Sub
    Quand je lance la macro, le message suivant s'affiche : "propriété ou méthode non géré par cet objet"

    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quand je lance la macro, le message suivant s'affiche : "propriété ou méthode non géré par cet objet"
    A quelle ligne ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Par défaut
    Juste avant celle la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j = WorksheetFunction.Mid(Range("C" & i), 1, 1)

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    La méthode Mid n'est pas prise en charge par WorksheetFunction.
    Utilise plutôt la fonction texte Mid de VBA comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsSource.Range("B" & i) = Mid(Range("C" & i), 1, 1)
    Bonjour,
    Attention aussi que tu utilises à maintes reprises un objet Range sans le faire précéder par la variable objet wsSource que tu as définie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derniereLigne = Range("A" & Rows.Count).End(xlUp).Row
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derniereLigne = wsSource.Range("A" & Rows.Count).End(xlUp).Row
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [XL-2010] aide sur une macro de majoration automatique 5% par an
    Par chermiti10 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/04/2015, 09h49
  2. [VBA-E] Copier une macro dans un fichier à l'aide d'une macro
    Par Capsule dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2007, 20h05
  3. Réponses: 4
    Dernier message: 21/07/2006, 17h43
  4. [VBA-E]Ouvrir une image jpg àl'aide d'une macro
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/03/2006, 09h47
  5. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28

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