AiDuK
Messages postés80Date d'inscriptionlundi 22 octobre 2007StatutMembreDernière intervention30 juillet 2008
-
29 juil. 2008 à 09:52
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
29 juil. 2008 à 15:04
Bonjour tout le monde,
Je cherche à faire une manipulation un peu hasardeuse.
En fait, j'ai 2 classeurs ( GestionFIQ.xls et bddFIQ.xls ), ce que je souhaite faire c'est que lorsque j'ai uniquement mon classeur GestionFIQ.xls d'ouvert et qu'à partir d'un formulaire de celui ci j'insère des données dans une feuille de ce classeur, cela ouvre l'autre classeur ( bddFIQ.xls ) et que ca insère les mêmes données, puis referme le classeur.
Mon bout de code actuel permet une seule écriture ( sur le classeur en cours, là ou se trouve le formulaire )
Sub Extraction()
'extrait les informations d'une FNC pour créer le début de la FIQ
Dim ProchaineLigneVide As Long
Dim FileToOpen As Variant
Dim mes1 As Variant
Dim marecherche As String
Dim No As String
Dim Ws As Worksheet
Select Case design_pays
Case "FR"
mes1 = "Importation annulée !"
mes2 = "Ce classeur ne contient pas de F.N.C. !"
Case "GB"
mes1 = "Importation cancelled !"
mes2 = "This workbook doesn't have N.C.S. !"
End Select
On Local Error GoTo MyOpen
FileToOpen = Application.GetOpenFilename("Tout les fichiers Excel (*.xl*;*.xls;*.xla;*.xml;*.xlm;*.xlc;*.xlw),")
Module5.NoFIQ
If FileToOpen Then
MyOpen:
If Err.Number = 13 Then
Err.Clear: On Local Error GoTo 0
Workbooks.Open FileToOpen
End If
For Each Ws In ActiveWorkbook.Worksheets If UCase$(Ws.Name) "FICHE FR" Or UCase$(Ws.Name) "FICHE GB" Then
Exit For
Else
ActiveWorkbook.Close
MsgBox mes2
Exit Sub
End If
Next
marecherche = Ws.Range("O10").Value
With ThisWorkbook.Sheets("Liste Fournisseurs").Range("a:a")
Set c = .find(marecherche, LookIn:=xlValues)
End With
If c Is Nothing Then Call Module1.affiche_fournisseur
With ThisWorkbook.Sheets("recep")
ProchaineLigneVide = .Range("A65536").End(xlUp).Row + 1
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 29 juil. 2008 à 15:04
Bonjour,
Bigre... que cela est compliqué... Pourquoi ne pas voir les choses plus simplement ?
Par exemple, tu remplis la feuille à partir de ton formulaire, et seulement une fois que toutes saisies sont finies, un bouton de commande (sur ton formulaire) ouvre le second classeur, et copie les plages nécessaires...
Tu évitera ainsi, d'ouvrir et de fermer à chaque donné rentrée... simplicité = efficacité ! (ici) autant pour ton PC que pour ton code...
Bref, ce n'est qu'un conseil...
Ensuite sur le code, il manque nécessairement la référence du classeur à fois. En effet, tu n'indique nul part dans ton code, à quel classeur s'applique les actions...
Ensuite, bien d'autres pb de structure existe, mais il faudrait voir tout cela dans un 2ième temps...