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 :

Séquence avec plantage aléatoire (ou pas) [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut Séquence avec plantage aléatoire (ou pas)
    Bonjour
    j'ai la séquence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                 For Each shap In catalogue.Shapes
                    If shap.TopLeftCell.Address = "$D$" & i1 Then
                        catalogue.Shapes(shap.Name).Height = haut ' dimensionne la photo
                        catalogue.Shapes(shap.Name).Copy
                        pdfS.Range("B" & Delta1 + 2).Select
                        pdfS.Paste
                        Exit For
                    Else
                    End If
                Next
    Si je lance plusieurs fois de suite la macro qui contient cette séquence, j'ai un résultat aléatoire :

    Soit ça marche bien, soit ça plante à des endroit différents avec le message
    Erreur d'exécution 1004
    La méthode "Paste" de l'objet _Worksheet a échoué
    J'ai fait de multiples tests sans explications (à mon niveau)

    en fait je voulais redimensionner la photo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     catalogue.Shapes(shap.Name).Height = haut
    après la copie, mais je n'y parviens pas. Je ne pense pas que le plantage vienne de là de toutes façons

    Avez-vous une idée de ce qui peux donner ce plantage aléatoire (et aussi le bon fonctionnement aléatoire !) dans cette séquence

    Nouveaux tests :
    1er clic : plantage ligne 53
    2eme clic : plantage line 149
    3eme clic : ok

    Il y a 168 lignes à traiter

    Une autre façon de faire peut être ?
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,

    Essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                For Each shap In catalogue.Shapes
                    If shap.TopLeftCell.Address = "$D$" & i1 Then
                        shap.Height = haut ' dimensionne la photo
                        shap.Copy
                        pdfS.Select
                        pdfS.Range("B" & Delta1 + 2).Select
                        pdfS.Paste
                        Exit For
                    End If
                Next
    Cordialement.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Bonjour

    j'ai le même résultat ou ça marche ou pb de plantage aléatoire, cette fois sur
    avec le code proposé

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,

    Eventuellement ceci:
    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
    Sub LaSub()
        '...
                For Each shap In catalogue.Shapes
                    If shap.TopLeftCell.Address = "$D$" & i1 Then
                         On Error GoTo Panne
    Copier:
                        shap.Copy
                        On Error GoTo 0
                        Application.Goto pdfS.Range("B" & Delta1 + 2)
                        ActiveSheet.Paste
                        ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Height = haut '--- modifie hauteur de ce qui vient d'être copié
                        Exit For
                    End If
                Next
        '...
        Exit Sub
    Panne:
        If MsgBox("Réessayer?", vbYesNo, "Oui/Non?") = vbYes Then
            Resume Copier
        End If
    End Sub
    Cordialement.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    Je viens d'essayer

    à un moment donné j'ai bien le message réessayer

    je réponds oui puis même plantage

    Je ne saisi pas le côté aléatoire du pb

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Oui, bizarre. Essayer récupérer le n° de l'erreur pour en savoir plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If MsgBox("Erreur " & Err.Number & vbLf & _
                   Err.Description & vbLf & _
                   "Réessayer?", vbYesNo, "Oui/Non?") = vbYes Then
    Cordialement.

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

Discussions similaires

  1. Plantage aléatoire sur Requete avec REGEX
    Par weboniric dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/11/2018, 11h25
  2. Réponses: 0
    Dernier message: 22/04/2016, 14h51
  3. [PC fixe] Plantage aléatoire avec son métallique/électronique désagréagle
    Par baxou087 dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 18/03/2014, 21h55
  4. Plantage aléatoire avec JNI
    Par legentil dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/10/2011, 21h06
  5. Plantage aléatoire avec intellde
    Par arnaud_verlaine dans le forum Windows XP
    Réponses: 4
    Dernier message: 30/06/2007, 13h37

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