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 :

Procédure folle ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut Procédure folle ?
    Bonjour,

    J'ai un programme sur excel qui me parait un peu fou.
    Enfin je pense qu'il me manque ou il y a en trop un petit quelque chose dans le code.

    Lorsque je lance la procédure MAJADR la première fois ça me fait tout se que je lui ai demandé.
    Mais lorsque je lance la deuxième fois ça ne fonctionne plus.

    Au niveau de la derniére ligne de la proc copieadr (mis en rouge). Il m'affiche les messages suivants Impossible d'entrer en mode arrêt maintenant du coup je clic sur continuer en prenant bien soin de mettre des points d'arrêt sur les lignes de code suivant ainsi que la proc suivantes mais tout de suite aprés avoir cliquer sur continuer il m'affiche Bibliothèque d'objet incorrecte ou contenant des références à des définitions d'objets introuvables.

    Je ne comprend pas trop le pb

    Pour la petite histoire, dans mon fichier excel il y a 2 feuilles.
    dans la première il y a des cases à cocher. Le code supp ces cases repporte les mise à jour de la deuxième feuille (plus détaillée et protéger en écriture) dans la première puis recrée les cases à cocher.

    voici mon code, c'est un peu de la bidouille car je me suis initialisée à vba y a pas longtemps et toute seule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit
    Public NbLigne As Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub MAJAdr()
    Dim rep As String
    rep = MsgBox("Etes vous sur de vouloir faire la mise à jour du listing adresses ?", vbOKCancel)
     
    Select Case rep
    Case 1
        suppcheckBox
        CopieAdr
        InsertCheckBox
        MsgBox "Mise à jour terminée"
    'Case Else
    End Select
     
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub Initvar()
    Sheets("listing adresses").Select
    NbLigne = Range("G65536").End(xlUp).Row
    Sheets("Tbd Envoi Annexes Mobile").Select
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub CptLigne()
    NbLigne = Range("H65536").End(xlUp).Row
    End Sub

    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
    Sub InsertCheckBox()
    Dim i As Integer
    Dim n As Integer
    Dim posleft As Variant
    Dim postop As Variant
    Dim posWidth As Variant
    Dim posHeight As Variant
    Dim car As String
     
    car = ","
     
    Initvar
     
    For i = 2 To NbLigne
        Sheets("listing adresses").Select
        If Trim(Range("G" & i)) <> "" Then
     
            Sheets("Tbd Envoi Annexes Mobile").Select
            posleft = Replace(Range("C" & i).Left, car, ".")
            postop = Replace(Range("C" & i).Top, car, ".")
            posWidth = Replace(Range("C" & i).Width, car, ".")
            posHeight = Replace(Range("C" & i).Height, car, ".")
     
            ActiveSheet.CheckBoxes.Add(posleft, postop, posWidth, posHeight).Select
     
            With Selection
            .Value = True
            .LinkedCell = "H" & i
            .Text = ""
            .Display3DShading = True
            End With
        End If
    Next
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub suppcheckBox()
    Dim i As Integer
     
    CptLigne
     
    For i = 2 To NbLigne
        Range("H" & i) = ""
    Next
    ActiveSheet.CheckBoxes.Delete
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CopieAdr()
    '
    ' CopieAdr Macro
    ' Macro enregistrée le 28/11/2008 par dqsf6548
    
        Sheets("listing adresses").Select
        Columns("A:F").Select
        Selection.Copy
        Sheets("Tbd Envoi Annexes Mobile").Select
        Cells.Select
        ActiveSheet.Paste
        
    End Sub
    Merci par avance de votre aide précieuse car ça fait quelques temps que je suis dessus et n'ai rien trouvé.

    cnelain

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 92
    Par défaut
    Je pense que ça vient du fait que tu sélectionnes des colonnes et que tu essaies de les copier dans des cellules. Le format de destination n'est pas le mm que celui d'entrée. C'est souvent le pbl avec les macro enregistrées.

    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells.Select
    ActiveSheet.Paste
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("A:F").Select
    ActiveSheet.Paste

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells.Select
    ActiveSheet.Paste
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("A:F").Select
    ActiveSheet.Paste
    [/QUOTE]

    Bonjour,

    Merci pour cette proposition, mais malheureusement j'ai toujours le même problème. Mais ce que je ne comprend vraiment pas c'est pourquoi ça marche une fois et pas 2.

    cn

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  3. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  4. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27
  5. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08

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