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 :

Besoin d'aide sur une macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Points : 35
    Points
    35
    Par défaut Besoin d'aide sur une macro
    bonjour à tous, je débute en vba, et je bloque sur les erreurs de ma macro,
    j'ai inséré des commentaires pour chacune des commandes,
    mais globalement cette macro sert à récuperer des données stockés dans les cellules A2 d'un nombre indéfini de feuille, la macro s'arrete une fois arrivé à la page nommé :Fin toujour présente dans le classeur.
    et elle recopie ces noms un à un dans une ligne d'une meme feuille, en vérifiant que ce nom n'y figure pas déja.

    voici donc la macro, avec en rouge les erreurs de ligne

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub Extraction_donnee_CCR()
     
    'adresse = ActiveCell.Address recuperation donnée cellule
    'ligne = ActiveCell.Row recuperation numero de ligne
     
    '
    ' Extraction_donnee_CCR Macro
    ' Macro enregistrée le 17/11/2011 par T0116493
    '
    'analyser le contenu de la cellule A2 de la premiere page ( page numéro 7'
     
    Dim produit, feuille As String
    Dim a, b, c, final As Integer
    feuille = LastNameSheet 'nom e la derniere feuille du fichier
    var1 = 7 'numero de feuille'
    var2 = 7 'colonne'
    var3 = 0 'a completer'
     
    'recupere le nom du 1er tube'
    Worksheets("var1").Cells(2, a).Value = produit
     
    'verifie si l'on a atteint la derniere colonne a verifier'
    Do Until var2 = 251 Or final = 1
     
     'verifie si l'on a pas atteint la derniere feuille nomme Fin'
    If ActiveSheet.Name = Fin Then
    final = 1
     
    End If
     
    'verifie que le tube n'existe pas deja'
    If produit = Worksheets("Top20 répartition h MO").Cells(1, var2).Value Then
    UserForm1.Show
    Else
    'se positionne a la derniere cellule vide sur la ligne 1 en partant de droite et y recopie la valeur de "produit"
    [IV1].End(xlToLeft).Offset(0, 1) = produit
    'incrémente les colonnes pour changer de colonne'
    var2 = var2 + 4
     
    End If
     
    Loop
    'reinitialise les colonnes pour commencer un nouveau tube'
    var2 = 7
     
    MsgBox "Recopie des tube terminé"
     
    End Sub


    merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par kyros21 Voir le message
    voici donc la macro, avec en rouge les erreurs de ligne
    Où ?

    Merci d'être plus explicite :

    Message d'erreur ? Si oui, lequel ?
    Le résultat n'est pas celui attendu ?

    Un peu de clarté.

    Philippe

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Quelques remarques sur la structure de ton code
    Attention à la déclaration de variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim produit, feuille As String
    Pour VBA voila ce que tu lui demande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim produit AS VARIANT, feuille As String
    Il faut répéter le type de variable à chaque fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim produit as String, feuille As String
    Tu ne déclares var1, 2 et 3 nul part
    Attention, ici tu demande à VBA de trouver un onglet qui se nome "var1" et non pas le 7ème onglet ou un onglet nomé "7" (cela dépendra du type que tu donneras à Var1)
    Donc ici il faut écrire
    Ensuite, il vaudrait mieux toujours faire référence à l'onglet + classeur sur lesquels tu travailles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim MonClasseurSource as WorkBook, MonClasseurBase as WorkBook
    'Puis tu définis
     'J'ai pas compris sur quels classeurs tu travailles
    Set MonClasseurSource = Workbooks("NomDuClasseurSource")
    Set MonClasseurBase = Workbooks("NomDuClasseurBase")
     
    'Ensuite dans le code tu fais référence à ton classeur
    'recupere le nom du 1er tube'
    'Worksheets("var1").Cells(2, a).Value = produit 'c'est l'inverse
    produit = MonClasseurSource.sheets(var1).cell(2,a).value
    Il faut que je parte,mais tu as beaucoup de choses à modifier dans ton code, il serait bien de lire des tutoriels (voir dans la section tutoriels), et d’être plus précis comme le dit Philippe

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  2. besoin d'aide sur une requette sql
    Par maxidoove dans le forum Langage SQL
    Réponses: 13
    Dernier message: 10/10/2005, 18h42
  3. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  5. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29

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