A voir également:
- VBA copier/coller valeurs d'une feuille vers nouveau classeur
- Copier coller pdf - Guide
- Copier une vidéo youtube - Guide
- Dessin sms copier coller zizi ✓ - Forum Réseaux sociaux
- Nouveau outlook - Accueil - Mail
- Historique copier-coller android - Guide
2 réponses
thev
Messages postés
1884
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
17 novembre 2024
691
Modifié par thev le 30/04/2015 à 12:18
Modifié par thev le 30/04/2015 à 12:18
Bonjour,
Bon début.
Mes premières remarques :
1- La définition d'objets tels que Workbook ou Range se fait avec l'instruction "set"
set WB = Workbooks.Add
set BU = Worksheets("JT_CASH_ALLOCATION").Range("A3")
2- si ta BU se trouve sur ton classeur de départ, il faut la référencer par rapport à ce classeur et donc le définir au début de ta procédure comme ceci
set Wdépart = ActiveWorkbook
puis
set BU = Wdépart.Worksheets("JT_CASH_ALLOCATION").Range("A3")
et
WB.SaveAs Filename:=BU.Value & ...
3- "Vous ne vous êtes pas identifié"
4- A noter que le nom d'utilisateur est donné par :
nom_utilisateur = application.UserName
--
Bon début.
Mes premières remarques :
1- La définition d'objets tels que Workbook ou Range se fait avec l'instruction "set"
set WB = Workbooks.Add
set BU = Worksheets("JT_CASH_ALLOCATION").Range("A3")
2- si ta BU se trouve sur ton classeur de départ, il faut la référencer par rapport à ce classeur et donc le définir au début de ta procédure comme ceci
set Wdépart = ActiveWorkbook
puis
set BU = Wdépart.Worksheets("JT_CASH_ALLOCATION").Range("A3")
et
WB.SaveAs Filename:=BU.Value & ...
3- "Vous ne vous êtes pas identifié"
4- A noter que le nom d'utilisateur est donné par :
nom_utilisateur = application.UserName
--
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
30 avril 2015 à 12:21
30 avril 2015 à 12:21
Bonjour Needhelp, bonjour le forum,
Ton code légèrement modifié :
Ton code légèrement modifié :
Sub Macro1() Dim CS As Workbook Dim OS As Worksheet Dim CD As Workbook Dim OD As Worksheet Dim NU As Variant Dim BU As String Set CS = ThisWorkbook Set OS = CS.Sheets("database CSV") ici: 'Demander les initiales de l'utilisateur' NU = Application.InputBox(" Vos initiales ? ", Type:=2) If NU = False Then Exit Sub 'Reprendre les initiales pour les insérer dans titre de sauvegarde' If NU = "" Then MsgBox "Vous ne vous êtes pas identifiez !" GoTo ici End If Set CD = Workbooks.Add Set OD = CD.Sheets(1) OS.Range("A1:N10000").Copy OD.Range("A1") 'Prendre la BU BU = CS.Worksheets("JT_CASH_ALLOCATION").Range("A3").Value 'Enregistrer sous avec format sauvegarde' ChDir "C:\Users\...\..." WB.SaveAs Filename:="BU" & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmm") & "_" & NU, FileFormat:=xlCSVMSDOS _ , CreateBackup:=False 'Message de validation de sauvegarde' MsgBox "Le document a bien été enrégistré", vbOKOnly End Sub
Encore quelques petites questions.
Dim CS
Dim OS
Dim CD
Dim OD
Dim NU
Dim BU
Peux-tu me donner la signification de tes abréviations? (histoire que je comprennes ce que je fais).
Aussi, existe-t-il une formule afin de ne copier que les lignes dans lesquelles figurent une valeur de mon fichier d'origine (sachant que deux lignes avec valeur peuvent être séparées par de nombreuses lignes sans valeur)?
Et comment supprimer les 2 feuilles inutiles de mon nouveau classeur?
Encore une fois merci pour votre aide
Dim CS
Dim OS
Dim CD
Dim OD
Dim NU
Dim BU
Peux-tu me donner la signification de tes abréviations? (histoire que je comprennes ce que je fais).
Aussi, existe-t-il une formule afin de ne copier que les lignes dans lesquelles figurent une valeur de mon fichier d'origine (sachant que deux lignes avec valeur peuvent être séparées par de nombreuses lignes sans valeur)?
Et comment supprimer les 2 feuilles inutiles de mon nouveau classeur?
Encore une fois merci pour votre aide
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
>
Needhelp
30 avril 2015 à 15:50
30 avril 2015 à 15:50
Bonjour NeedHelp, Thev,
Vénérer ?! Non arrête ça va me véner...
Libre à toi de nommer tes variables comme bon te semble. Il est tout de même conseiller d'y mettre une ou plusieurs majuscules (chose que je fais) et de leur donner un nom explicite (chose que je ne fait pas)... Il est aussi plus que déconseiller, même interdit, d'utiliser des mots-clé de Visual basic...
Les Majuscules c'est parce que quand tu édites le code dans l'éditeur (VBE), il faut tout taper en minuscule. Quand tu valides la ligne avec la touche [Entrée], la ou les variables et les mots-clé utilisées dans la ligne prennent la casse (Maj/Min) initiale. Un rapide coup d'oeil permet ainsi d'éviter des fautes de frappe en écrivant le code.
Comme j'ai horreur des noms à rallonge, je nomme mes variables souvent par des initiales. Mais, encore une fois, tu les nommes comme tu veux et comme ça te convient à toi.
CS = Classeur Source
OS = Onglet Source
CD = Classeur Destination
OD = Onglet Destination
NU = Nom Utilisateur
BU = heu ! c'est toi qui l'a nommée celle-la...
Sinon pour supprimer les deux dernières feuilles du classeur destination regarde ce bout de code :
Pour l'autre problème, il faut boucler ligne par ligne en recherchant la valeur. Avec un fichier exemple et des explications plus claires je pourrais t'explique cela...
Vénérer ?! Non arrête ça va me véner...
Libre à toi de nommer tes variables comme bon te semble. Il est tout de même conseiller d'y mettre une ou plusieurs majuscules (chose que je fais) et de leur donner un nom explicite (chose que je ne fait pas)... Il est aussi plus que déconseiller, même interdit, d'utiliser des mots-clé de Visual basic...
Les Majuscules c'est parce que quand tu édites le code dans l'éditeur (VBE), il faut tout taper en minuscule. Quand tu valides la ligne avec la touche [Entrée], la ou les variables et les mots-clé utilisées dans la ligne prennent la casse (Maj/Min) initiale. Un rapide coup d'oeil permet ainsi d'éviter des fautes de frappe en écrivant le code.
Comme j'ai horreur des noms à rallonge, je nomme mes variables souvent par des initiales. Mais, encore une fois, tu les nommes comme tu veux et comme ça te convient à toi.
CS = Classeur Source
OS = Onglet Source
CD = Classeur Destination
OD = Onglet Destination
NU = Nom Utilisateur
BU = heu ! c'est toi qui l'a nommée celle-la...
Sinon pour supprimer les deux dernières feuilles du classeur destination regarde ce bout de code :
Application.DisplayAlerts = False CD.Sheets(Array("Feuil2", "Feuil3")).Delete Application.DisplayAlerts = True
Pour l'autre problème, il faut boucler ligne par ligne en recherchant la valeur. Avec un fichier exemple et des explications plus claires je pourrais t'explique cela...