Liste déroulante formulaire

  • Initiateur de la discussion Initiateur de la discussion dj dim
  • 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 !

dj dim

XLDnaute Occasionnel
Bonjour à tous,

J'ai un sushi avec mon code :

Code:
Sub Macro_Mise_a_Jour_Societe()
Dim classeurSource As Workbook, classeurDestination As Workbook

'ouvrir le classeur source (en lecture seule)
If [a1].Value = 1 Then
Set classeurSource = Application.Workbooks.Open("Fichier1.xls", , True)
If [a1].Value = 2 Then
Set classeurSource = Application.Workbooks.Open("Fichier2.xls", , True)
If [a1].Value = 3 Then
Set classeurSource = Application.Workbooks.Open("Fichier3.xls", , True)

'définir le classeur destination
Set classeurDestination = ThisWorkbook

'copier les données de la feuille "Facturation" du classeur source vers la feuille "Facturation" du classeur destination
classeurSource.Sheets("Facturation").Range("A6:AU300").Copy classeurDestination.Sheets("Facturation").Range("A6")

'fermer le classeur source
classeurSource.Close False
End If
End If
End If
End Sub

Je me torture l'esprit pour qu'en fonction de ma sélection la macro aille chercher les fichiers (qui se trouvent tous dans un seul et même dossier)

Merci par avance car il me reste plus beaucoup de cheveux sur le caillou ! 😕
 
Re : Liste déroulante formulaire

Bonsoir dj dim,

J'ai testé le code ci-dessous (en Excel2000), en imaginant que je n'ai pas compris trop de travers ce que tu voulais faire ...?

Code:
Sub Macro_Mise_a_Jour_Societe()
  
Dim classeurDestination As Workbook
Dim classeurSource As String
  
Set classeurDestination = ActiveWorkbook
num = classeurDestination.Sheets("facturation").Range("A1").Value
classeurSource = classeurDestination.Path & "\fichier" & num & ".xls"

Workbooks.Open Filename:=classeurSource
Workbooks("Fichier" & num & ".xls").Sheets("Facturation").Range("A6:AU300").Copy _
    classeurDestination.Sheets("Facturation").Range("A6")
Workbooks("Fichier" & num & ".xls").Close False

End Sub
Ceci fonctionne si ton "classeurDestination" est enregistré au même emplacement que les trois autres (voir classeurDestination.Path). Si pas, tu peux indiquer le chemin d'accès aux fichiers sous la forme:
Code:
 "Z:\dj dim\mon sushi\fichier" & num & ".xls"
 
Re : Liste déroulante formulaire

Bonjour à tous, Bonjour Modeste,

Tout d'abord merci pour ton aide 😉.

Je m'excuse, en plus d'être novice en macro, je me suis effectivement mal exprimé.

En fait j'ai donc une liste déroulante type formulaire qui affecte la cellule A1 de la manière suivante :
1 = Paul
2 = Jean
3 = Thierry
4 = ...
...

J'ai dans un dossier sur un serveur avec les fichiers correspondants aux noms ci-dessus et nommés de la manière suivante :
Paul.xls
Jean.xls
...

Je souhaite donc dans le cadre du fichier de consultation que je suis en train de créer, que lorsque je choisi un nom dans la liste déroulante, une macro copie la feuille "Facturation" du fichier concerné sur la feuille "Facturation" de mon fichier consultation.

Le but est ensuite de créer une macro d'impression me permettant d'imprimer uniquement les colonnes de la feuilel facturation souhaitées ...

J'espère avoir été plus clair dans mes explications.

Merci par avance pour votre aide
 
Re : Liste déroulante formulaire

Ouf !!

En bidouillant un peu un code de Pierrot93, j'ai réussi à solutionner mon problème.

HTML:
http://www.excel-downloads.com/forum/145742-lancer-une-macro-partir-valeur-dune-cellule-variable.html

Un grand merci à tous et longue vie à ce forum 🙂
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Réponses
9
Affichages
580
Réponses
3
Affichages
582
Retour