![]() |
|
Forum
|
|
|||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Bonjour à touS !
Je suis toujours optimiste quand je poste sur ce forum, car je sais que quelqu'un aura un brin d'aide à me donner. Depuis mon dernier post, j'ai beaucoup avancé dans mes fichiers, et je vous en remerci. Je peux même maintenant donner quelques conseils ! C'est pas beau ? Soit, mon "problème" J'ai donc Deux classeurs. Un classeur SAISIE intervention, ou je saisi sur une feuille les renseignements du client, que je valide. Lors de la validation, les variables nom, adresse, etc vont dans une autre feuille du meme classeur avec une jolie mise en page, s'imprime, se sauvegarde dans un dossier, et les variables se colle également dans ... le SECOND classeur nommé BDD pour base de donnée ( sous forme de tableau ) Ce que je souhaite faire ? Compléter la fiche d'un client en passant par le fichier BDD. Pour exemple, le client est solutionné, je souhaite donc en cliquant sur la ligne de ce client, ouvrir le fichier sauvegardé précédemment dans un dossier. Es ce possible ? Merci par avance de vos conseils. Dernière modification par Jeanbulle ; 14/10/2006 à 18h40. Motif: Topic Résolu |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2006
Localisation: Ile de France sud
Version Excel : Excel 97 (PC)
Messages: 306
|
Bonjour le Forum
Bonjour Jean Peut être avec ce code dans : Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("a1").Select Then MsgBox "Bonjour" ''' Workbooks.Open "xxxxxx.XLS" End If End Sub Bien entendu tu l'adaptes Cordialement |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Bonjour,
Merci pour ta réponse Mais ca ne correspond pas vraiment en fait. Car, ce que je n'arrive pas à faire, c'est par exemple, si je double clique sur le NOM1, qu'il mette en variable la cellule de la meme ligne qui contient le NOM, et celle qui contient APPAREIL et qu'il ouvre le fichier qui a été enregistré avec CES variables la. Code:
For Each c In Range("A10:A30")
ligne = c.Row
If Cells(ligne, 1).select Then
Dim vFichier As String, vChemin As String
vChemin = "D:\disque\etc\Etc\"
With ThisWorksheets
nom = Cells(ligne, 1)
appareil = Cells(ligne, 8)
vFichier = vChemin & nom & " " & appareil
Workbooks.Open Filename:=(vFichier)
End With
end if
Next
Je suis pas encore au point. Merci de ton aide |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Messages: 554
|
Bonjour Jeanbulle,
essaye un truc comme ceci qui gère le doubleclic sur une ligne : Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NomSelection, AppareilSelection As String
Dim vFichier As String, vChemin As String
vChemin = "D:\disque\etc\Etc\"
NomSelection = Cells(Target.Row, 1).Value
AppareilSelection = Cells(Target.Row, 8).Value
Cancel = True
vFichier = vChemin & NomSelection & " " & AppareilSelection & ".xls"
Workbooks.Open Filename:=(vFichier)
End Sub
Dernière modification par tatiak ; 14/10/2006 à 16h09. |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Re ...
Bon j'ai cherché, et finallement, j'ai trouvé en faisant comme ca. Je pensais pouvoir faire plus court en fait... mais apparemment ca marche. Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim vFichier As String, vChemin As String
vChemin = "D:\chemin\blablabla"
nom = Cells(Target.Row, 1)
appareil = Cells(Target.Row, 8)
inter = Cells(Target.Row, 6)
revendeur = Cells(Target.Row, 7)
marque = Cells(Target.Row, 9)
vFichier = vChemin & nom & " " & appareil & " " & inter & " " & revendeur & " " & marque
modif = MsgBox("Tu veux ouvrir cette fiche client ?", vbYesNo, "Modification Fiche")
If modif = vbYes Then
Workbooks.Open Filename:=(vFichier)
End If
If modif = vbNo Then
Exit Sub
End If
End Sub
Bonne journée, je repasse plus tard |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonjour à tous,
avec ce code (le tien réaménagé) ça devrait aller : Code:
Dim vFichier As String, vChemin As String
Set mafeuille = ActiveSheet
With mafeuille
For Each c In .Range("A10:A30")
ligne = c.Row
If Not (IsEmpty(.Cells(ligne, 1))) Then
vChemin = "g:\fora\"
nom = .Cells(ligne, 1)
appareil = .Cells(ligne, 8)
vFichier = vChemin & nom & " " & appareil
Workbooks.Open Filename:=(vFichier)
End If
Next
End With
mafeuille.Activate
A+ |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Ah merci à toi aussi Tatiak ! J'avais pas vu ton post.
Mais dis moi... question bête.. Le fait de déclarer en string ? qu'es ce que ca signifie exactement ? Et le fait de mettre cancel as boolean, cancel = True ? Merci pour ton coup de patte |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Messages: 554
|
Hello,
Ici le string n'as rien d'érotique, il s'agit seulement d'une chaine de caractère (... et c'est bien connu, là où il y a de la chaine, y a pas de plaisir...) ... Heum ..., plus sérieusement l'instruction "Cancel = true" permet au curseur de ne pas "entrer" dans la cellule doublecliquée. |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Bonne réponse pour le string merci
Quant au cancel, il me faut pouvoir modifier le reste de la fiche. Puisque sur le fichier exemple, je n'ai rien mis, mais il y aura un tas de saisie sur d'autres cellules. Mais puisque je ne veux pas non plus que l'on modifie ces cases la. Es t il possible que ce code ne s'applique QUE si nous cliquons dans la colonne NOM ? Si ce n'est pas possible, rien de grave, le fichier est déjà pas mal du tout. Merci encore |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Messages: 554
|
Ben oui, pour ça il suffit de rajouter ceci :
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NomSelection, AppareilSelection As String
Dim vFichier As String, vChemin As String
vChemin = "D:\chemin\tructruc\"
If Not Intersect(Range("A1:A" & Range("A65000").End(xlUp).Row), Target) Is Nothing Then
NomSelection = Cells(Target.Row, 1).Value
AppareilSelection = Cells(Target.Row, 8).Value
Cancel = True
vFichier = vChemin & NomSelection & " " & AppareilSelection & ".xls"
Workbooks.Open Filename:=(vFichier)
End If
End Sub
|
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Bravo ! Ton code marche niquel.
Le mien aussi fonctionne, mais sur toutes les cellules. Je vais donc probablement opter pour le tien, mais au vu de faire des modifications dessus, peux tu, si ce n'est pas abuser, rajouter les commentaires explicatifs. Car, je comprends la logique de mon code, mais le tiens, j'avou que j'ai plus de mal. Merci en tout cas c'est vraiment sympa |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Messages: 554
|
Je suppose que c'est cette ligne qui te soucie?:
If Not Intersect(Range("A1:A" & Range("A65000").End(xlUp).Row), Target) Is Nothing Then pour commencer : Range("A65000").End(xlUp).Row correspond à la dernière ligne occupée par des données de la colonne A (et on demande ici à Excel de commencer la recherche par le bas de la colonne : end(xlup)) (pour être précis il faudrait écrire 65536, mais c'est rare qu'on aille jusqu'ici ... en tout cas pour mes appli) donc : Range("A1:A" & Range("A65000").End(xlUp).Row) correspond à la zone de données de la colonne A occupée par des données La ligne complète signifie donc : "si le doubleclic n'est pas fait ailleurs que dans la zone de noms alors le code suivant est exécuté" (double négation) Pour le reste du code, on place le contenu des cellules dans une variable (en plusieurs bouts) pour constituer le nom du fichier à ouvrir, mais là tu avais déjà écrit un truc dans ce style Bon week-end! |
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2006
Messages: 133
|
Tatiak ?
Je te dois combien pour cette consultation ? Grand merci, j'ai bien compris tout ton code, et vais pouvoir le modifier à ma guise. Bon week end, j'édite le topic en résolu Grand merci encore ! |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Comment adapter des liens d'un classeur excel vers un autre classeur excel : '[] | lebarbo | Forum Excel | 2 | 24/07/2006 14h55 |
| ouvrir un fichier autre que Excel par VBA | etpisculrien | Forum Excel | 5 | 23/05/2006 09h34 |
| Ouvrir un fichier excel à partir d'un autre fichie | Cybher | Forum Excel | 10 | 31/03/2005 22h50 |
| ouvrir un userform d'un autre classeur | daniel | Forum Excel | 3 | 29/03/2005 16h29 |
| ouvrir un fichier d'un logiciel autre que excel en partant de VB | didier | Forum Excel Downloads - Archives | 7 | 21/08/2002 16h02 |