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 :

Aide pour la création d'un script [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut Aide pour la création d'un script
    Bonjour,

    Je voulais créer mon premier script VBA, mais c'est finalement plus compliqué que prévu (pour moi en tout cas )

    Voici ce dont j'ai besoin :
    J'utilise un fichier excel avec plusieurs sheets, dans chaque sheet il y a une colonne qui contient des numéros de référence (de la forme Cnnnnn - par ex C01245, C02315, ...). Lorsque j'ajoute une ligne dans une des sheets, je dois regarder manuellement dans chaque sheet pour trouver le dernier numéro utilisé et l'incrémenter.

    C'est ce que je voudrais automatiser avec un script.

    Je voyais 2 approches :
    - soit, comme manuellement, on parcours la bonne colonne dans chaque sheet, on trouve le numéro le plus élevé, et on l'incrémente.

    - soit, plus simple à mon avis, mais moins joli, je crée une liste de 'nouveaux' numéros dans un sheet séparé, on prend le premier de la liste et on le supprime, comme ça le premier élément de la liste correspond toujours au numéro à utiliser.

    Mais quelle que soit la solution, je n'ai pas trop d'idée pour le script...

    Merci d'avance pour votre aide.

    Olivier

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    ton explication semblait être tres clair dans les 4 premières lignes et ensuite ca deviens incompréhensible

    en tout cas pour trouver la dernière ligne utilisé il y a la fonction( end(xlup).row sur un range
    explique un peu plus clairement ce que tu veux car je crois comprendre que la dernière ligne utilisée n'est pas le seul argument enfin si j'ai bien compris
    ce qui est moins sur

    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    En fait, oui, il faut regarder la dernière ligne de la colonne C (colonne où les numéros de réference sont inscrits) de chaque sheet, vérifier lequel de ces numéros est le plus élevé, l'incrémenter, et l'insérer dans l'activecell.

    Ce serait certainement plus clair avec un exemple de fichier, mais je ne sais pas si je peux attacher un document dans un post.

    Merci pour ton aide

    Olivier

  4. #4
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour,

    Voila qui devrait te depanner

    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
    Sub Indice()
     
        Dim wb As Workbook
     
        Set wb = ThisWorkbook
     
        On Error Resume Next
     
        For Each ws In wb.Worksheets
            With ws
                Fin = .Range("C" & Rows.Count).End(xlUp).Row
                No = CLng(Right(.Range("C" & Fin), Len(.Range("C" & Fin)) - 1))
                If Err = 5 Then
                    Debug.Print "La derniere cellule de la feuille " & ws.Name & " n'est pas de la forme Cnnnnn"
                    Err.Clear
                End If
                Max = WorksheetFunction.Max(Max, No)
            End With
        Next
     
        ActiveCell = "C" & Max + 1
     
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    Super, ça fonctionne !

    (par contre le contrôle d'erreur n'a pas l'air de fonctionner, mais ce n'est pas bien grave)

    Merci beaucoup pour votre aide

    Olivier

  6. #6
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Re,

    Ca affiche un message dans la fénétre execution de l'éditeur VBA.*

    Si tu veux voir le message pendant l'execution du code, remplace

    par Bonne journée

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    Je viens de remplacer Debug.Print par MsgBox, mais il ne se passe rien de plus.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Peut etre que tu n'as tout simplement pas d'erreur ^^

    Si sur toutes tes feuilles, la dernière cellule de la colonne C contient "Cnnnnn" tu n'as pas d'erreur

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    J'ai essayé de mettre autre chose que Cnnnnn dans une des feuilles, je n'ai pas de message,

    j'ai essayé de mettre aussi autre chose dans toutes les autres feuilles, et je n'ai pas d'erreur non plus (et le numéro généré est le "C1")

    Je crois qu'il ne retourne probablement pas le bon code erreur ?

    Merci

  10. #10
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Re

    en effet, en fonction du contenu de la cellule, il y a différents numéro d'erreur, je n'ai pas poussé les tests assez loin. Au pire, la fonction en elle même marche, mais si tu veux le message, tu peux remplacer

    par

    Bonne journée

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    Ca fonctionne et c'est très bien comme ça !

    Merci beaucoup encore une fois.

    Cordialement

    Olivier

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

Discussions similaires

  1. Aide pour la création d'un JavsScript
    Par koKoTis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/08/2006, 15h44
  2. Réponses: 1
    Dernier message: 17/05/2006, 15h27
  3. Réponses: 2
    Dernier message: 10/03/2006, 13h55
  4. [Oracle] Aide pour la création d'un trigger
    Par Sonic dans le forum Administration
    Réponses: 14
    Dernier message: 04/11/2004, 19h54

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