[VBA] Besoin d'aide pour la création d'une macro [Résolu]

villette54

XLDnaute Junior
Re : [VBA] Besoin d'aide pour la création d'une macro

Salut Tirou,

Effectivement je n'avais pas pensé à tout ça...
D'autant plus que la plupart des fichiers sont simplement des fichiers où il suffit de jeter un coup d'oeil pour savoir la date du prochain camion, ou ce que le collègue de la pause d'avant à fait...
Et qu'en plus étant sur un réseau d'entreprise les macros sont désactivées par défaut sur tous les postes...

Je vais essayer de trouver une solution...

En tout cas merci, pour ton aide.
 

villette54

XLDnaute Junior
Re : [VBA] Besoin d'aide pour la création d'une macro

Re,

Au fait pour info. J'ai finalement réussi à faire un lien dans mon email.
L'une des syntaxes que j'ai utilisée était bonne, seulement elle ne gère pas les espaces... J'ai donc du faire sans.

Pour info, voici le morceau de code :
Code:
dim corps as string
Corps = "Bonjour," & vbCrLf & "<br>" _
 & vbCrLf & "<br>" _
 & "Ci-dessous le lien vers le RDP du " & Sheets(2).[C92].Value & " concernant la zone : " & Sheets(1).[C18].Value & vbCrLf & "<br>" _
 & vbCrLf & "<br>" _
 & "<HTML><BODY>" _
 & "<A href=P:\RDP\Nouveaux_RDP\>P:\RDP\Nouveaux_RDP\</A>" _
 & "</BODY></HTML>" _
 & vbCrLf & "<br>" _
 & "Bien à vous,"
On voit bien que j'ai du changer le nom du dossier "Nouveaux RDP" en "Nouveaux_RDP".

Tant que j'y pense. Il me reste encore un petit soucis sur ce fichier, j'ai besoin de faire apparaître une partie d'une autre feuille de données dans un USF ou une msgbox, mais le problème est assez flagrant on ne voit rien...
Je te laisse voir par toi même.. S'il te reste encore un peu de temps à m'accorder et que tu vois comment solutionner ça, je suis preneur.
 

Fichiers joints

Tirou

XLDnaute Occasionnel
Re : [VBA] Besoin d'aide pour la création d'une macro

Re,

Merci pour le bout de code pour le lien HTML.

Pour ton affichage d'image dans l'userform, je ne me vois pas rentrer dans le code VBA : il y a trop de commandes qui me sont totalement inconnues.

Je laisse donc tomber l'ajustement automatique (je le reprendrais si il n'y a pas le choix) et je te propose ceci :
Tu peux jouer avec les propriétés de l'userform, en particulier avec la propriété "zoom". Après avoir joué avec, tu repositionnes ton cadre d'image, et ça devrait être bon pour toi.
Je te propose en pj un fichier avec zoom à 70.
 

Fichiers joints

villette54

XLDnaute Junior
Re : [VBA] Besoin d'aide pour la création d'une macro

Ah effectivement, je n'avais pas penser à aller voir dans ces réglages
(Je n'y avais jamais prêté attention)

Merci pour l'info, en bidouillant un peu j'ai réussi à avoir une mise en page qui me convient !
 

villette54

XLDnaute Junior
Re : [VBA] Besoin d'aide pour la création d'une macro

Salut Tirou,

Eh oui encore moi... x)
Une petite question, pourquoi est-ce que dans le code ci-dessous la première partie (avant le '----) fonctionne très bien.
Et que la seconde partie se met en défaut : "Application-Defined or Object-Defined Error"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Worksheets(1).Unprotect Password:="123rdp"
If Not Intersect(Target, Range("F11")) Is Nothing Then
    If Cells(11, 6).Value = "Blessure avec arrêt" Then
        Cells(37, 1).Value = "Cause(s) de l'accident :"
    Else
    If Cells(11, 6).Value = "Blessure sans arrêt" Then
        Cells(37, 1).Value = "Cause(s) de l'accident :"
    Else
        Cells(37, 1).Value = "Cause(s) de l'incident :"
End If
End If
End If
'-------------------------------------------------

If Not Intersect(Target, Range("F11")) Is Nothing Then
    If Cells(11, 6).Value = "Blessure avec arrêt" Then
        Cells(41, 1).Value = "Conséquence(s) de l'accident :"
    Else
    If Cells(11, 6).Value = "Blessure sans arrêt" Then
        Cells(41, 1).Value = "Conséquence(s) de l'accident :"
    Else 'la ligne juste en dessous se met en défaut
        Cells(41, 1).Value = "Conséquence(s) de l'incident :"
End If
End If
End If
Worksheets(1).Protect Password:="123rdp"
End Sub
Merci d'avance pour ton aide.

Edit : J'ai aussi essayé en simplifiant un peu le code :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Worksheets(1).Unprotect Password:="123rdp"
If Not Intersect(Target, Range("F11")) Is Nothing Then
    If Cells(11, 6).Value = "Blessure avec arrêt" Then
        Cells(37, 1).Value = "Cause(s) de l'accident :"
        Cells(41, 1).Value = "Conséquence(s) de l'accident :"
    Else
    If Cells(11, 6).Value = "Blessure sans arrêt" Then
        Cells(37, 1).Value = "Cause(s) de l'accident :"
        Cells(41, 1).Value = "Conséquence(s) de l'accident :"
    Else
        Cells(37, 1).Value = "Cause(s) de l'incident :"
        Cells(41, 1).Value = "Conséquence(s) de l'incident :"
End If
End If
End If
Worksheets(1).Protect Password:="123rdp"
End Sub
Mais la même ligne se met toujours en défaut (la dernière) --> Cells(41, 1).Value = "Conséquence(s) de l'incident :"

Editbis : Quand je fais un debug étape par étape avec F8, toute la procédure se passe sans encombre. Mais après le End Sub, le débugger remonte et me remet cette ligne en défaut... Je pige pas là.
 
Dernière édition:

Tirou

XLDnaute Occasionnel
Re : [VBA] Besoin d'aide pour la création d'une macro

Mmm, difficile à dire comme ça sans le fichier. Je suppute que tu as une impossibilité d'écrire dans cette case 41;1 mais pourquoi ... je ne sais pas.

Envois moi le fichier en MP s'il est confidentiel ^^

Sinon, j'ai rajouté quelques petites choses sur ton code :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Worksheets(1).Unprotect Password:="123rdp"

If Not Intersect(Target, Range("F11")) Is Nothing Then
    motClef = Cells(11, 6).Value
    If motClef = "Blessure avec arrêt" Or motClef = "Blessure sans arrêt" Then
        Cells(37, 1).Value = "Cause(s) de l'accident :"
        Cells(41, 1).Value = "Conséquence(s) de l'accident :"
    Else
        Cells(37, 1).Value = "Cause(s) de l'incident :"
        Cells(41, 1).Value = "Conséquence(s) de l'incident :"
    End If
End If

Worksheets(1).Protect Password:="123rdp"
Application.EnableEvents = True
End Sub
La commande Application.Events = false permet que ta macro ne se relance pas à tout bout de champ quand tu changes une valeur dans ta feuille.

Je t'ai mit un exemple de Or dans ton test if, ça permet parfois, comme ici, de simplifier.
Par contre, je n'ai pas été jusqu'à simplifier ton if en entier : que ta condition soit vraie ou fausse, tu fais la même chose ...
 

villette54

XLDnaute Junior
Re : [VBA] Besoin d'aide pour la création d'une macro

Ok,

Merci.

Par contre je ne comprend pas ce que tu veux dire par :
que ta condition soit vraie ou fausse, tu fais la même chose ...
Je vois avec toi par MP pour la suite.
 

Discussions similaires


Haut Bas