completer macro

mistralincoming

XLDnaute Junior
bonjour au forum

j'ai la macro suivante:

Public ReponseMsgBox As Variant
Public Const NomDuCheminDestin$ = "C:\Users\Mistral-Incoming\Documents\Projet Mistral\Fournisseurs\PHOTOS FOURNISSEURS\"


Public Sub ButtonNewDossier() pour créer à chaque fois qu'un nom est saisi automatiquement un dossier ou ranger les photos
' test s'il y a un nom de dossier dans la cellule "nom" !?
NomDuDossierNew$ = Trim(Range("nom"))
If NomDuDossierNew$ = "" Then MsgBox "Aucun nom de dossier dans la cellule nommée [nom] !?", vbExclamation, "Erreur": Exit Sub
' confirmation
M$ = "Chemin de destination:" & vbLf & NomDuCheminDestin$ & vbLf & vbLf & _
Créer le sous dossier [ & NomDuDossierNew$ & " ] ?"
ReponseMsgBox = MsgBox(M$, vbExclamation + vbYesNo + vbDefaultButton2, "Création nouveau sous dossier")
If ReponseMsgBox <> vbYes Then Exit Sub
' suite... pour création
On Error GoTo ErrDossier
' test si NomDuCheminDestin$ existe !?
Chemin$ = NomDuCheminDestin$: If Right(Chemin$, 1) = "\" Then Chemin$ = Left(Chemin$, Len(Chemin$) - 1)
If Dir(Chemin$, vbDirectory) = "" Then MsgBox Chemin$ & vbLf & "... n'existe pas !?", vbCritical, "Erreur chemin": Exit Sub
' test si sous dossier existe !?
DossierNew$ = NomDuCheminDestin$: If Right(NomDuCheminDestin$, 1) <> "\" Then DossierNew$ = NomDuCheminDestin$ & "\"
Rep$ = Dir(DossierNew$, vbDirectory) 'Extrait première entrée
Do While Rep$ <> ""
If Rep$ <> "." And Rep$ <> ".." Then
If (GetAttr(DossierNew$ & Rep$) And vbDirectory) = vbDirectory Then 'test si dossier !?
If LCase(Rep$) = LCase(NomDuDossierNew$) Then MsgBox "Le sous dossier [ " & NomDuDossierNew$ & " ] existe déjà !": Exit Sub
End If
End If
Rep$ = Dir 'Extrait entrée suivante
Loop
' création
CreationNew$ = NomDuCheminDestin$: If Right(NomDuCheminDestin$, 1) <> "\" Then CreationNew$ = NomDuCheminDestin$ & "\"
CreationNew$ = CreationNew$ & NomDuDossierNew$
MkDir CreationNew$
MsgBox "Dossier [ " & NomDuDossierNew$ & " ] créé !"
On Error GoTo 0: Exit Sub ' fin quitte

ErrDossier: '-------------------------------------------
M$ = "Erreur n°" & Str(Err.Number) & " générée par " & Err.Source & vbLf & Err.Description
MsgBox M$, vbCritical, "Erreur", Err.HelpFile, Err.HelpContext
On Error GoTo 0
End Sub


je cherche à y intégrer lorsque un dossier est à créer (réponse msg box ok) la macro suivante:

Sub lienhypertexte()
'
' lienhypertexte Macro
' Macro enregistrée le 14/03/2008 par mistralincoming
'

'
Range("C7:M8").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Selection.Hyperlinks.Delete
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"PHOTOS FOURNISSEURS/matis"
Range("C9:M55").Select
End Sub

"PHOTOS FOURNISSEURS/matis" mais de façon automatique

qui peux m'aider
merci
 

Roland_M

XLDnaute Barbatruc
Re : completer macro

bonjour Mistral... c'est Roland !
ayant créé cette macro, tu aurais dû me le demander par message privé !
par pitié ne te lance pas comme ça ! si tout le monde intervient dans cette macro tu vas te retrouver avec un fourbis pas possible (chacun ayant sa manière de faire)
je vais donc y regarder, et seulement si je peux pas tu relances ta demande sur le Forum
première question puis-je me servir de ton classeur que j'ai gardé pour faire ce que tu demandes ?
Roland
 

mistralincoming

XLDnaute Junior
Re : completer macro

Re Roland,

tu as raison, bon conseil.
Regarde j'ai réussi.

Public Sub ButtonNewDossier()
' test s'il y a un nom de dossier dans la cellule "nom" !?
NomDuDossierNew$ = Trim(Range("nom"))
If NomDuDossierNew$ = "" Then MsgBox "Aucun nom de dossier dans la cellule nommée [nom] !?", vbExclamation, "Erreur": Exit Sub
' confirmation
M$ = "Chemin de destination:" & vbLf & NomDuCheminDestin$ & vbLf & vbLf & _
"Créer le sous dossier [ " & NomDuDossierNew$ & " ] ?"
ReponseMsgBox = MsgBox(M$, vbExclamation + vbYesNo + vbDefaultButton2, "Création nouveau sous dossier")
If ReponseMsgBox <> vbYes Then Exit Sub
' suite... pour création
On Error GoTo ErrDossier
' test si NomDuCheminDestin$ existe !?
Chemin$ = NomDuCheminDestin$: If Right(Chemin$, 1) = "\" Then Chemin$ = Left(Chemin$, Len(Chemin$) - 1)
If Dir(Chemin$, vbDirectory) = "" Then MsgBox Chemin$ & vbLf & "... n'existe pas !?", vbCritical, "Erreur chemin": Exit Sub
' test si sous dossier existe !?
DossierNew$ = NomDuCheminDestin$: If Right(NomDuCheminDestin$, 1) <> "\" Then DossierNew$ = NomDuCheminDestin$ & "\"
Rep$ = Dir(DossierNew$, vbDirectory) 'Extrait première entrée
Do While Rep$ <> ""
If Rep$ <> "." And Rep$ <> ".." Then
If (GetAttr(DossierNew$ & Rep$) And vbDirectory) = vbDirectory Then 'test si dossier !?
If LCase(Rep$) = LCase(NomDuDossierNew$) Then MsgBox "Le sous dossier [ " & NomDuDossierNew$ & " ] existe déjà !": Exit Sub
End If
End If
Rep$ = Dir 'Extrait entrée suivante
Loop
' création
CreationNew$ = NomDuCheminDestin$: If Right(NomDuCheminDestin$, 1) <> "\" Then CreationNew$ = NomDuCheminDestin$ & "\"
CreationNew$ = CreationNew$ & NomDuDossierNew$
MkDir CreationNew$
MsgBox "Dossier [ " & NomDuDossierNew$ & " ] créé !"
Sheets("commentaires").Select
Range("C7:M8").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
NomDuCheminDestin$ & NomDuDossierNew$
Range("C2").Select


Il me reste encore des broutilles par contre.
Si tu as le temps de regarder mon dernier message sur la copie des liens hypertexte

la macro de copie est celle ci (enfin qu'une partie car la base est tellement importante qu'elle va se ranger sur deux feuilles)
Sub COPIERDONNEES()
'
' COPIERDONNEES Macro
' Macro enregistrée le 08/03/2008 par mistralincoming
'

'
Derlig = Sheets("Base rens gen Fournisseurs ").[A65000].End(xlUp).Row + 1
Range("U1:U68").Copy
Sheets("Base rens gen Fournisseurs ").Select
Range("A" & Derlig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Dim pl As Range
Set pl = Range("A3:BP" & Derlig)
pl.Name = "zone_de_tri_base_renseignements_generaux_fournisseurs"
Set pl = Range("B3:B" & Derlig)
pl.Name = "fournisseurs"
Range("zone_de_tri_base_renseignements_generaux_fournisseurs").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
, Order2:=xlAscending, Header:=xlGuess
Sheets("création Fiche Fournisseur").Select
Range( _
"C7:E7,C9:E9,C11:E11,I9:Q9,I11:Q11,I13:Q13,I15:Q15,I17:Q17,I19:Q19,K18,I21:Q21,I23:Q23,I25:Q25,I27:Q27" _
).Select
Range("I27").Activate
ActiveWindow.SmallScroll Down:=8
Range( _
"C7:E7,C9:E9,C11:E11,I9:Q9,I11:Q11,I13:Q13,I15:Q15,I17:Q17,I19:Q19,K18,I21:Q21,I23:Q23,I25:Q25,I27:Q27,C16:E16,C18:E18,C20:E20,C25:E25,C26:E26,C27:E27,C28:E28,D33" _
).Select
Range("D33").Activate
ActiveWindow.SmallScroll Down:=19
Union(Range( _
"K47:L47,C50:E50,H50:I50,L50:O50,C52:I52,C7:E7,C9:E9,C11:E11,I9:Q9,I11:Q11,I13:Q13,I15:Q15,K18,I17:Q17,I19:Q19,I21:Q21,I23:Q23,I25:Q25,I27:Q27,C16:E16,C18:E18,C20:E20,C25:E25,C26:E26,C27:E27,C28:E28,D33,D35,D37,D39" _
), Range("D41,D43,K36:M36,C47:E47,H47")).Select
Range("C52").Activate
ActiveWindow.SmallScroll Down:=25
Union(Range( _
"K47:L47,C50:E50,H50:I50,L50:O50,C52:I52,C57:E57,C59:E59,C61:E61,C63:E63,C65:E65,C67:E67,K57:M57,K59:M59,K61:M61,K63:M63,K65:M65,K67:M67,C7:E7,C9:E9,C11:E11,I9:Q9,I11:Q11,I13:Q13,I15:Q15,K18,I17:Q17,I19:Q19,K18,I21:Q21,I23:Q23,I25:Q25" _
), Range( _
"I27:Q27,C16:E16,C18:E18,C20:E20,C25:E25,C26:E26,C27:E27,C28:E28,D33,D35,D37,D39,D41,D43,K36:M36,C47:E47,H47" _
)).Select
Range("K67").Activate
Selection.ClearContents
Range("D111").Activate
Selection.ClearContents
Range("D113").Activate
Selection.ClearContents
Range("D115").Activate
Selection.ClearContents
Range("D117").Activate
Selection.ClearContents
Range("D119").Activate
Selection.ClearContents
Range("D121").Activate
Selection.ClearContents
Range("K41").Activate
Selection.ClearContents
Range("C129").Activate
Selection.ClearContents
Range("G136").Activate
Selection.ClearContents
Range("G137").Activate
Selection.ClearContents
Range("G138").Activate
Selection.ClearContents
Range("G139").Activate
Selection.ClearContents
Range("G140").Activate
Selection.ClearContents
Range("G141").Activate
Selection.ClearContents
Range("G142").Activate
Selection.ClearContents
Range("G143").Activate
Selection.ClearContents
Range("G144").Activate
Selection.ClearContents
Sheets("commentaires").Select
Range("C5:M6").Select
Selection.ClearContents
Range("C7:M8").Select
Selection.ClearContents
Range("C9:M55").Select
Selection.ClearContents
Sheets("création Fiche Fournisseur").Select
Range("B2:Q3").Select
End Sub
 

Roland_M

XLDnaute Barbatruc
Re : completer macro

re
excuse moi, mais ça devient trop compliqué, pas toujours logique, difficile à suivre !
on ne sais plus ou, de qui, de quoi !?
Et surtout trop de fil sur le forum en même temps, trop de questions qui partent dans tous les sens.
Tu dois résoudre un problème à la fois !
quand je tire le classeur, je ne retrouve pas toutes les ajoutes que j'y ai faites ! je suis perdu !

Exemple ici, tu parles de cellules avec liens qui affichent des valeurs mais pas le lien !?
On ne voit pas exactement les cellules en question dans quelle page et quel endroit, et surtout ou chercher !?
Pour toi, dans ta logique ça peut paraître clair, mais pas pour les autres !?
Tu mets des remarques que l'on essai de suivre difficillement, mais le problème se situe ou excatement sur quelle feuille précise et quelle cellule précise (exp: LE PROBLEME EST ICI MEME!) et ensuite on peut suivre tes remarques pour essayer de comprendre.

Roland
 

mistralincoming

XLDnaute Junior
Re : completer macro

re
tu n'as pas tord, ça fait quelques jours et nuits que je suis dessus, alors à la fin j'arrive à me comprendre....
j'ai essayé au max de te faciliter le truc
sur l'onglet visualisation
si tu as besoin de plus de précisions
merci
 

Pièces jointes

  • créer un fichier-1.xls
    46 KB · Affichages: 33

jeanpierre

Nous a quitté
Repose en paix
Re : completer macro

Bonjour mistralincoming, Roland,

Désolé d'intervenir là,

Mais mistralincoming, fais le ménage dans tes fichiers déposés et n'en laisse qu'un et surtout un compréhensible.... (tu peux zipper aussi)

Merci beaucoup.

Jean-Pierre
 

Roland_M

XLDnaute Barbatruc
Re : completer macro

re
désolé mais je vois pas bien comment dans ces conditions. Milles excuses
le problème c'est qu'avec un classeur incomplet on ne peut essayer et tester les rajoutes
Dans un classeur Perso je ferai cela assez facilement.
Il te faut un Userform avec un Combobox dans lequel on initialise la liste depuis les cellules en questions.
De là, il est facile, selon la sélection faite, de lancer une procédure.
Pour la création du lien hypertexte avec un essai Enregister macro tu as facilement le modèle de code, et tu incorpores par variables les données du lien et ainsi le créer
Roland
PS: retiens bien les conseils de jeanpierre !
 

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 378
dernier inscrit
phdrouart