Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion tactic6
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tactic6

XLDnaute Impliqué
Salut tout le monde
pour appeler une feuille dans le classeur ou on travail c'est Sheets("Feuil1")
mais pour en appeller une dans un autre dossier comment fait-on ?
 
Re : question c.n

merci Fred mais je n'arrive pas a intégrer cette ligne a ton code
code:
Code:
Sub SauvegardeFeuil1()
Const DossierSauvegarde As String = ""D:\Données\Relevé\" ' à modifier selon l'emplacement de ton dossier
Const DossierSauvegarde2 As String = ""D:\Données\Facture\"
Dim AWbk As Workbook
Dim LaFin As String
Dim Ext As String
Dim NomClasseur As String
Dim Nume As String
Set AWbk = ActiveWorkbook

'nom du classeur sans l'extension
NomClasseur = Left(AWbk.Name, Len(AWbk.Name) - InStr(1, StrReverse(AWbk.Name), "."))
'extension
Ext = Right(AWbk.Name, InStr(1, StrReverse(AWbk.Name), "."))
'date et heure
LaFin = Format(Now, "dd-mm-yy hh-mm-ss")
'enregistrement des copies
Sheets("Feuil1").Copy
ActiveWorkbook.SaveAs DossierSauvegarde & NomClasseur & " " & LaFin & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.Close
Nume = [Facture!J6]  ' vérifie j'ai mis J6
Sheets("Facture").Copy
ActiveWorkbook.SaveAs DossierSauvegarde2 & NomClasseur & " " & Nume & Ext ', xlExcel8  ' tu peux supprimer xlExcel8
ActiveWorkbook.Close
'If MsgBox("Ouvrir le dossier de sauvegarde ?", vbYesNo) = vbYes Then _
   Shell "C:\WINDOWS\EXPLORER.EXE /n,/e," & ""D:\Données\", vbNormalFocus

End Sub

dans l'état actuel la sauvegarde de la feuil 1 ne se fait pas dans la même feuille mais sur une feuille différente ( 1 feuille par sauvegarde)
j'aurais aimé "appeler" cette feuille pour y inscrire une nouvelle ligne, a la suite de la précédente
 
Re : question c.n

re,

en fait si j'ai bien compris le déroulement de ton code c'est:
dans le classeur "facture" il y a la feuille facture et la feuil1
ta macro fait une sauvegarde de la facture dans un dossier
ensuite récupère des données de la factures pour les écrire sur la feuil1 et fait une sauvegarde de la feuil1 dans un autre dossier.

ce que j'aimerais c'est que ton code récupère la feuil1 dans le dossier ou elle est sauvegardée pour y ajouter à la ligne +1 les valeurs récupérées de la nouvelle facture.

Hum....me demande si c'est compréhensible 😀


en même temps est il possible d'avoir un controle qui renvoie un message d'erreur si une cellule de la colonne J (comprise entre J12 et J52) est remplie alors que la cellule de la même ligne colonne K (donc de K12 à K52) ne l'est pas
 
Dernière édition:
Re : question c.n

bonjour,

une façon d'exporter une valeur dans un classeur fermé avec ADO

Code:
Option Explicit

'
Sub ADO_AjoutBD()
Dim Fichier As String
Dim NomFeuille As String
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset

'ici, le chemin du classeur dans lequel tu veux exporter les données de la cellule J6
Fichier = "C:\Users\Fred\Desktop\BD TEST.xlsx"
'ici le nom de la feuille
NomFeuille = "Feuil1"
 
 Set Cn = New ADODB.Connection
 'ligne pour Excel 2007
   Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
      "Data Source=" & Fichier & ";" & _
      "Extended Properties=""Excel 12.0;HDR=Yes;"""
 'ligne pour les versions antérieures
   'Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & Fichier & ";" & _
      "Extended Properties=""Excel 8.0;HDR=Yes;"";"
    
   Set Cd = New ADODB.Command
   Cd.ActiveConnection = Cn
   
      Cd.CommandText = "SELECT * FROM [" & NomFeuille & "$]"
      Set Rst = New ADODB.Recordset
      Rst.Open Cd, , adOpenKeyset, adLockOptimistic
      'envoi du curseur à la fin de la base
      Rst.MoveLast
      With Rst
         .AddNew
            'Nume est la valeur inscrite ligne  1 de la colonne,
            '[J6], la valeur de la cellule à exporter
         .fields("Nume") = [j6]
         .Update
      End With
 'Fermeture
Rst.Close:   Cn.Close
   
Set Cn = Nothing:   Set Cd = Nothing:   Set Rst = Nothing
End Sub

Je te laisse l'adapter.

Pour ta 2nde question, tu peux faire un test
Code:
If cells(x,"J") = "" and cells(x,"K") = "" then ....

cordialement
 
Re : question c.n

re

Code:
.... then MsgBox "Vous devez remplir les cellules " & cells(x,"J").address & _
" et " & cells(x,"K").address & "." : Exit Sub
Pour ado, ce n'est pas trop coton, plonge toi dedans 2 minutes, adapte les variables à ton cas, Fichier, NomFeuille, version d'excel ...

Le classeur récepteur doit être fermé.

@+
 
Dernière édition:
Re : question c.n

re re
apres suppression de la virgule j'obiens erreur 1004 à la ligne If Cells(x, "J") = "" And Cells(x, "K") = "" Then

Toujours pas trouvé ou est se satané reference VBE ....... vaut mieux 1 qui sait que 10 qui cherchent
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
256
Réponses
15
Affichages
784
Réponses
7
Affichages
262
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…