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 :

Problème copie d'image [XL-2016]


Sujet :

Macros et VBA Excel

  1. #41
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re new version
    bon si tu me dis que la c'est pas bon fait de la peche ou du tricot
    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
    Option Explicit
    Sub test()
        Dim tabloimage(), WindoWname As String, WbKSource As Workbook, shap, i As Long, cel
         WindoWname = ThisWorkbook.Name
        Set WbKSource = Workbooks.Open(ThisWorkbook.Path & "\ES-Catalogue.xlsx")
        'on rassemble les images dans un tableau
        With WbKSource.Sheets("Param Services")
            ReDim tabloimage(1 To 50)
            For Each shap In .Shapes
                If shap.TopLeftCell.Row >= 1 And shap.TopLeftCell.Row <= 50 And shap.TopLeftCell.Column = 4 Then
                    i = i + 1: tabloimage(shap.TopLeftCell.Row) = shap.Name
                End If
            Next
            ReDim Preserve tabloimage(1 To i)     'on elimine les item du tabloimage vides
              With .Shapes.Range(tabloimage): .Group.Copy: .Ungroup: End With
        End With
     
        Windows(WindoWname).Activate
        With ActiveSheet
            Cells(8, 2).Select: .Paste:
            For Each shap In .Shapes
                If shap.Type = msoGroup Then shap.Ungroup
            Next
            For i = 1 To UBound(tabloimage)
                Set cel = .Cells(8 + (5 * (i - 1)), 2)
                With .Shapes(tabloimage(i)): .Left = cel.Left: .Top = cel.Top: .Height = cel.Height: End With
            Next
        End With
        'on ferme la source image on en a plus besoins
        Application.DisplayAlerts = False
        WbKSource.Close
    End Sub
    allez on croise les doigts
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Je crois que je vais faire du tricot..

    j'ai cherché et testé toute la matinée, sans succès..

    "l'index de cette collection est en dehors des limites"

    image jointe...
    Images attachées Images attachées  
    Il ne savait pas que c'était impossible, donc il l' a fait...

  3. #43
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon ben desolé mais je crois que plus personne peut plus rien pour toi
    toute les versions que j'ai pu faire on fonctionnés sur plusieur ordis
    il ne reste plus qu'une option :soit tu a le bordel dans tes librairies (réinstalation office) soit ton fichier ou tes fichiers sont corrompus
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    re,
    ne te fâche pas ainsi et même si je suis à des années lumières de ton expertise, écoute moi :

    quand j'utilise ton code du post #22 tout est ok avec tes fichiers et mon catalogue complet revu, sauf que les images ne sont pas triées par ordre des lignes du catalogue, donc ça marche bien.

    Je remplace uniquement ton code du post #22 avec ton dernier du post #41 (sans le modifier) sans rien toucher d'autre, toujours avec tes fichiers, ça va jusqu'au bout mais ne trie toujours pas les images dans l'ordre du catalogue

    Avoue que je peux me poser des questions et douter que cela vienne de mon installation..

    je continue de tester, je ne suis pas très doué je te l'accorde, mais très persévérant...
    Il ne savait pas que c'était impossible, donc il l' a fait...

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Re,

    j'ai tout repris à zéro et uniquement avec tes fichiers, voilà le bilan:

    - Avec ton ancien code (du post #22) cela marche parfaitement bien que ce soit avec le catalogue en xlsm ou en xlsx, seulement l'ordre des images n'est pas l'ordre du catalogue

    - Avec ton nouveau code (du post #44) 2 cas de figure :

    1) avec le catalogue que je t'ai fourni, cela va au bout mais pas de tri des images et en plus elles sont décalées par rapport à la cellule de destination

    2) en fait j'ai fait une erreur, la 1ere ligne de mon catalogue réel est une ligne de titre et donc la première ligne réelle est la ligne 2
    En ajoutant une ligne en 1ere ligne dans le fichier test on a l'erreur "l'index de cette collection est en dehors des limites"
    cela vient probablement de cette ligne ajoutée; excuse moi de cet oubli dans le petit fichier test.

    J'ai essayer de voir en pas à pas, mais je ne sais pas aller plus loin seul, si tu ne m'aides pas à finir , je vais devoir abandonner, avec regret, on y était presque...

    Dans tous les cas merci, j'ai appris beaucoup au fil de tes messages, notamment sur la façon de chercher les pb, même si je suis encore loin...
    Il ne savait pas que c'était impossible, donc il l' a fait...

  6. #46
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon je reprendrais pas a pas aec toi demain
    et je te montrerais qu'il n'y a aucunne raison que tu n'y arrive pas
    on fera des test avec les debugs pour que tu puisse comprendre par toi meme ou ca pas va pas dans tes fichiers
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    c'est très sympa, j'apprécie…

    je vais avoir peu de temps disponible aujourd'hui, mais rien ne presse, au fil du temps.

    J'ai reconstruit un petit catalogue de test avec la vraie taille des images et le bon positionnement des lignes
    Fichiers attachés Fichiers attachés
    Il ne savait pas que c'était impossible, donc il l' a fait...

  8. #48
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re et la c'est la derniere
    re
    bon j'ai trouvé l'erreur il y en avait 2
    en fait on y est pour rien

    1. la 1ere etait que toi tu demarrais en ligne 2
    2. la 2d etait que:il se trouve que quand on copie ,colle degroupe excel renomme les image si on a laissé le nom d'origine

    ce qui fait que la derniere boucle de replacement sur le tabloimage ne correspondait pas au nom d'image sur le sheets de edition
    j'ai donc remis le renomage dans la 1ere boucle de remplissage du tabloimage

    j'ai abusivement et giganthesquement bardé le code de commentaires expliquant le deroulement

    a la fin les images portent l'address de destination comme nom il n'y a pas d'ambiguité comme ca

    j'ai pris ton dernier fichier catalogue et j'ai fait expres!!!!! de mettre tes 4 images dans le désordre pour voir si le resultat visuel correspondait au visuel dans edition
    je crois que je peux pas faire plus

    allez 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
    Sub test()
        Dim tabloimage(), WindoWname As String, WbKSource As Workbook, shap, i As Long, cel, a As Long
        WindoWname = ThisWorkbook.Name
        Set WbKSource = Workbooks.Open(ThisWorkbook.Path & "\ES-Catalogue.xlsx")
        With WbKSource.Sheets("Param Services")    'donc avec le sheest des image du catalogue
            ReDim tabloimage(1 To 50)    ' on prepare
            '**************************************************************************************
            'on rassemble les noms des images dans le <<<tabloimage>>>
            'on les renomme au passage car l'ors de la copie sur edition excel les renomme automatiquement
            'par ce que!!! si on laisse leur nom d'origine la boucle sur les noms dans tabloimage pour les replacer et bien  excel ne les trouve pas
            For Each shap In .Shapes
                If shap.TopLeftCell.Row >= 1 And shap.TopLeftCell.Row <= 50 And shap.TopLeftCell.Column = 4 Then
                    i = i + 1: shap.Name = "img" & i    'on renomme l'image
                    tabloimage(shap.TopLeftCell.Row) = shap.Name    'on place le nom de l'image dans le meme index que la ligne ou elle se trouve dans le sheets dans catalogue
                End If
            Next
            '**************************************************************************************
     
            '**************************************************************************************
            'on procede a la copie de tout les shapes en les groupant
            With .Shapes.Range(tabloimage): .Group.Copy: .Ungroup: End With
            '**************************************************************************************
        End With
        '***********************************************************************************
        'juste pour que tu vois ce qui il y a dans le tabloimage
        'cette partie est a supprimer bien sur!!!  quand tu aura saisi tout ce qui precede
        MsgBox Join(tabloimage, ",")
        '**********************************************************************************
     
        Windows(WindoWname).Activate    ' on reactive maintenant le classeur  d'edition
        With ActiveSheet    'activesheet comme c'est le seul sheets  on est sur d'etre sur le bon
            Cells(8, 2).Select: .Paste    'on colle le groupe de shape
            'on cherche dans les shapes la quel est un groupe et on la degroupe
            For Each shap In .Shapes
                If shap.Type = msoGroup Then shap.Ungroup
            Next
            ' a partir de la on a nos images dans l'edition et elles sont degroupées
            ' dans la boucle sur tabloimage qui suit
            'si on trouve un nom on incremente "a" avec *5 pour la destination
            'donc on !!!SET!!!! la cellule de destination
            'et on la repositionne sur cette CEL!!!
            ' et le bouquet c'est que je leur donne l'adresse de destination comme nom
            For i = 1 To UBound(tabloimage)
                If tabloimage(i) <> "" Then
                    Set cel = .Cells(8 + (5 * a), 2)
                    With .Shapes(tabloimage(i)): .Left = cel.Left: .Top = cel.Top: .Height = cel.Height: .Name = cel.Address: End With
                    a = a + 1
                End If
            Next
        End With
        'on ferme la source image on en a plus besoins en prenant soit de déactiver les alerts comme ca les noms que l'on a changé ne reste pas
        ' le classeur catalogue est donc fermé sans garder aucune modification
        Application.DisplayAlerts = False
        WbKSource.Close
    End Sub
    voila les deux fichiers
    je vois pas comment je pourrais faire plus
    bonne lecture
    Fichiers attachés Fichiers attachés
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Re,

    j'ai testé, y compris avec mon vrai catalogue en xlsm, le résultat est parfait… ouf…

    Je vais maintenant éplucher tes commentaires en détail pour comprendre et devenir moins idiot...

    Ensuite tranquillement je vais intégrer cela dans le reste de ma macro, j'ai vu des incompatibilités à résoudre entre ton code et le reste du mien, mais je vais me débrouiller, ça doit être dans mes cordes...

    UN GRAND MERCI A TOI

    Je reviendrai te dire quand tout sera fini
    Il ne savait pas que c'était impossible, donc il l' a fait...

  10. #50
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Ouf!!!! enfin
    alors en gardant ce principe d'indexation et le nommage de l'image avec l'address de cellule de destination dans le tabloimage j'ai repris un peu mes ancien code et ca match aussi pour le replacement
    regarce celui la marche aussi
    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
    49
    50
    51
    Option Explicit
    Sub test()
        Dim tabloimage(), WindoWname As String, WbKSource As Workbook, shap, i As Long, cel, a As Long
        WindoWname = ThisWorkbook.Name
        Set WbKSource = Workbooks.Open(ThisWorkbook.Path & "\ES-Catalogue.xlsx")
        With WbKSource.Sheets("Param Services")    'donc avec le sheest des image du catalogue
            ReDim tabloimage(1 To 50)    ' on prepare
            '**************************************************************************************
            'on rassemble les noms des images dans le <<<tabloimage>>>
            'on les renomme au passage car l'ors de la copie sur edition excel les renomme automatiquement les nom correspondent au adresses de cemlule de destination
            'par ce que si on laisse leur nom d'origine la boucle sur les noms dans tabloimage pour les replacer et bien  excel ne les trouve pas
            For Each shap In .Shapes
                If shap.TopLeftCell.Row >= 2 And shap.TopLeftCell.Row <= 50 And shap.TopLeftCell.Column = 4 Then
                    i = i + 1: shap.Name = "b" & 8 + ((shap.TopLeftCell.Row - 2) * 5)    'on renomme l'image
                    tabloimage(shap.TopLeftCell.Row) = shap.Name    'on place le nom de l'image dans le meme index que la ligne ou elle se trouve dans le sheets dans catalogue
                End If
            Next
            '**************************************************************************************
     
            '**************************************************************************************
            'on procede a la copie de tout les shapes en les groupant
            With .Shapes.Range(tabloimage): .Group.Copy: .Ungroup: End With
            '**************************************************************************************
        End With
        '***********************************************************************************
        'juste pour que tu vois ce qui il y a dans le tabloimage
        'cette partie est a supprimer bien sur!!!  quand tu aura saisi tout ce qui precede
        MsgBox Join(tabloimage, ",")
        '**********************************************************************************
     
        Windows(WindoWname).Activate    ' on reactive maintenant le classeur  d'edition
        With ActiveSheet    'activesheet comme c'est le seul sheets  on est sur d'etre sur le bon
            Cells(8, 2).Select: .Paste    'on colle le groupe de shape
            'on cherche dans les shapes la quel est un groupe et on la degroupe
            For Each shap In .Shapes
                If shap.Type = msoGroup Then shap.Ungroup
            Next
            ' a partir de la on a nos images dans l'edition et elles sont degroupées
            'on boucle sur les shapes et on les place avec leur noms comme leur nom correspond au adresses de destination
            For Each shap In .Shapes
                If shap.Name <> "Button 1" Then
                    Set cel = .Range(shap.Name)
                    With shap: .Left = cel.Left: .Top = cel.Top: .Height = cel.Height: End With
                End If
            Next
        End With
        'on ferme la source image on en a plus besoins en prenant soit de déactiver les alerts comme ca les noms que l'on a changé ne reste pas
        ' le classeur catalogue est donc fermé sans garder aucune modification
        Application.DisplayAlerts = False
        WbKSource.Close
    End Sub
    voila dans les 2 methodes , l'astuce reside simplement dans l'indexation dans tabloimage avec topleftcell.row

    ravi pour toi si ca marche
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    re,

    j'ai pu intégrer le reste de ma macro avec ton code, quelques petits soucis que j'ai pu quand même résoudre, elle est surement très optimisable mais elle marche bien,

    Il faut une minute pour traiter tout ce qu'elle fait, mais pas grave pour l'édition d'un catalogue, il est fait une fois par mois, le service rendu est tellement grand.

    j'en ai un autre à faire mais j'ai lu attentivement tes commentaires très utiles et je peux me débrouiller, je ne saurai pas la réécrire à partir d'une feuille blanche mais l'adapter ça ira.

    Encore MERCI de ta patience...
    Il ne savait pas que c'était impossible, donc il l' a fait...

  12. #52
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Il faut une minute pour traiter tout ce qu'elle fait, mais pas grave pour l'édition d'un catalogue, il est fait une fois par mois, le service rendu est tellement grand.
    je pense que ca viens d'ailleurs que mon code
    copier grouper 50 images max pour les coller et degrouper ailleurs , ne prends pas une minute c'est pas possible

    ps je viens de faire le test 50 images et ca prend moins de 10 secondes
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Oui tout à fait d'accord avec toi, pour 186 images que j'ai actuellement dans le catalogue ton code prends une petite quinzaine de secondes

    c'est dans le reste de ce que je lui fait faire que ça prends du temps, mais comme je te disais vu le service rendu et l'utilisation ponctuelle le temps a une importance très secondaire

    j'essaye de regarder quand même ce que je peux optimiser.

    j'ai une petite question technique, et je n'ai pas trouvé de réponse qui me satisfasse sur le net :
    c'est la première fois que je vois ça dans un code, quel est l'intérêt réel ?

    Pour ton info, j'ai envoyé les fichiers à ma fille qui attendait cela et qui l'utilisera, elle est ravie, merci pour elle
    Il ne savait pas que c'était impossible, donc il l' a fait...

  14. #54
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, déjà signalé dans un autre de tes posts : lire Support de cours complet pour le VBA d'Excel

  15. #55
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    option explicit te permet de voir si toutes tes variables sont declaréesdu genre (dim machin as string)
    avec cette option si une variable n'est pas declarée le code plante et de donne la variable non declarée
    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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Re,

    j'ai fini Patrick, tout est ok, merci

    pour l'option explicit je me suis mal exprimé, en effet j'avais vu dans la doc que le but de l'option de détecter les variables non définies, mais j'ai constaté que j'ai qq variables non définies détectées par cette option, néanmoins la macro marche parfaitement sans l'option, donc les variables sont quand même résolues d'une façon ou d'une autre.

    Ma question est plutôt : quel risque prend-on à ne pas la mettre si on ne touche plus à une macro qui fonctionne sans avec des variables non définies ?
    Il ne savait pas que c'était impossible, donc il l' a fait...

  17. #57
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Ma question est plutôt : quel risque prend-on à ne pas la mettre si on ne touche plus à une macro qui fonctionne sans avec des variables non définies ?
    ben imagine que un module contient 500 lignes de code en 30 fonctions voir variables injectées
    si tu utilise par inadvertence une variable deja utilisée dans un autre type par exemple dans deux fonctions differentes ca risque de te causer probleme

    avec cette option tout est detecté pas d'erreur possible un chat sera un chat
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Copie Image dans Excel via une macro
    Par sevlev59 dans le forum QlikView
    Réponses: 2
    Dernier message: 22/02/2018, 17h06
  2. Problème avec redimesionnement image...
    Par Baptiste Wicht dans le forum 2D
    Réponses: 4
    Dernier message: 30/11/2005, 22h45
  3. [Sécurité] Bloquer la copie d'images
    Par Pascal Lob dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 22h29
  4. TreeView - Problème avec les images
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/06/2005, 18h50
  5. [FLASH MX] Problème pour défilement images
    Par Buzhug dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2004, 21h09

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