VBA Excel creer plusieurs feuilles
Résolu/Fermé
9
-
11 févr. 2011 à 10:18
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 15 févr. 2011 à 14:55
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 15 févr. 2011 à 14:55
A voir également:
- VBA Excel creer plusieurs feuilles
- Créer liste déroulante excel - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Formule excel pour additionner plusieurs cellules - Guide
20 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
11 févr. 2011 à 10:40
11 févr. 2011 à 10:40
(Ne pas oublier le ) Bonjour,
A priori ceci :
Application.DisplayAlerts = False
Worksheets(".....").Delete
Application.DisplayAlerts = True
A+
A priori ceci :
Application.DisplayAlerts = False
Worksheets(".....").Delete
Application.DisplayAlerts = True
A+
Bonjour,
Desole pour(le bonjour) c'est juste une erreur de frappe.
Un grand merci pour ton aide, c exactement ce qu'il me fallait.
j'auraias une derniere question .
J'ai 2 Sub et jer voudrais savoir comment faire pour executer la deuxieme des que je termine la premiere?
Je sais aps si c clair,
Voici une partie du code : pe etre que que tu comprendras mie .
sub xxx()
...............................................
Next
MsgBox "Veuillez saisir les taches désirés", vbOKOnly + vbInformation, " "
Sheets("Nomenclature 1").Select
End Sub
Sub SelectionnerCellules()
'Supprimer toutes les cellues en dessous de la ligne 6
'=================================================
For j = 6 To Sheets.Count
Sheets(j).Select
Range("A6:I3500").Select
Selection.EntireRow.Delete
Range("B6").Select
Next j
Sheets("Nomenclature 1").Select
'Colorier les sellules selectionnées pour pouvoir les reperer apres
'=================================================
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Selection.Copy
'==============================================================================================================================
' COPIER LES TACHES SELECTIONNES
'==============================================================================================================================
Sheets(Sheets.Count - NbrSemAffaire).Select
Range("B6").Select
ActiveSheet.Paste
...........................................
End sub
Je ve que quand je finis mon premier sub et qu'il me dise selectionne tes taches, je selectionnes les taches que je ve et que la deuxieme sub se mettent en route directement.
Je sais aps si c clair?
Merci d'avance pr ton aide
Desole pour(le bonjour) c'est juste une erreur de frappe.
Un grand merci pour ton aide, c exactement ce qu'il me fallait.
j'auraias une derniere question .
J'ai 2 Sub et jer voudrais savoir comment faire pour executer la deuxieme des que je termine la premiere?
Je sais aps si c clair,
Voici une partie du code : pe etre que que tu comprendras mie .
sub xxx()
...............................................
Next
MsgBox "Veuillez saisir les taches désirés", vbOKOnly + vbInformation, " "
Sheets("Nomenclature 1").Select
End Sub
Sub SelectionnerCellules()
'Supprimer toutes les cellues en dessous de la ligne 6
'=================================================
For j = 6 To Sheets.Count
Sheets(j).Select
Range("A6:I3500").Select
Selection.EntireRow.Delete
Range("B6").Select
Next j
Sheets("Nomenclature 1").Select
'Colorier les sellules selectionnées pour pouvoir les reperer apres
'=================================================
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Selection.Copy
'==============================================================================================================================
' COPIER LES TACHES SELECTIONNES
'==============================================================================================================================
Sheets(Sheets.Count - NbrSemAffaire).Select
Range("B6").Select
ActiveSheet.Paste
...........................................
End sub
Je ve que quand je finis mon premier sub et qu'il me dise selectionne tes taches, je selectionnes les taches que je ve et que la deuxieme sub se mettent en route directement.
Je sais aps si c clair?
Merci d'avance pr ton aide
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
11 févr. 2011 à 14:49
11 févr. 2011 à 14:49
pour appeler une autre macro :
call + nom macro :
call SelectionnerCellules avant ton end sub
call + nom macro :
call SelectionnerCellules avant ton end sub
Bonjour,
merci encore une fois,
et si on veut appeler une variable d'une autre procedure?
genre si je ve faire faire call i avec i variable defini dans ma premiere procedure, ca marche pas.
J'ai vu sur l'aide call ne marche quavec les procedure et fonction.
Comment faire pour les variables?
Merci d'avance
merci encore une fois,
et si on veut appeler une variable d'une autre procedure?
genre si je ve faire faire call i avec i variable defini dans ma premiere procedure, ca marche pas.
J'ai vu sur l'aide call ne marche quavec les procedure et fonction.
Comment faire pour les variables?
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
11 févr. 2011 à 15:16
11 févr. 2011 à 15:16
bonjour,
il faut 2 choses,
tu écris call + nom macro + (nom de tes variables
sub macro (nom de tes variables).
Dans ton ex :
call SelectionnerCellules (i)
sub selectionnercellules(i)
il faut 2 choses,
tu écris call + nom macro + (nom de tes variables
sub macro (nom de tes variables).
Dans ton ex :
call SelectionnerCellules (i)
sub selectionnercellules(i)
Bonjour,
T génial MELANIE, grace a toi j'ai grave avancer mon projet auj. Un grand merci pr tout.
Une derniere question, avt de te lacher les baskets car j'ai un peu abuser.
j'ai 2 Procedures, je ne ve executer la premiere que quand je lance ma macro la premiere fois. ensuite si je relance ma macro je ve qu'elle me reexecuter que ma deuxieme macro.
Est ce que C possible?
Si oui t'aurais une petite idée de comment faire?
T génial MELANIE, grace a toi j'ai grave avancer mon projet auj. Un grand merci pr tout.
Une derniere question, avt de te lacher les baskets car j'ai un peu abuser.
j'ai 2 Procedures, je ne ve executer la premiere que quand je lance ma macro la premiere fois. ensuite si je relance ma macro je ve qu'elle me reexecuter que ma deuxieme macro.
Est ce que C possible?
Si oui t'aurais une petite idée de comment faire?
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
11 févr. 2011 à 16:58
11 févr. 2011 à 16:58
re,
c'est possible.
tu fais une 3e macro :
sub premiere
a = cells(1,1) 'tu prends une cellule ou tu tu es sure qu'il n'y auras jamais de données, le premier chiffre ligne, le 2nd colonne
if a = "" then
call (première procédure)
else
call (seconde procédure)
end if
end sub
dans ta première procédure, avant le end sub tu mets :
cells(1,1) = "première fois"
dans ta seconde procédure avant le end sub tu mets :
cells(1,1) = ""
ainsi quand tu déclenches pour la première fois, ta première procédure mettras une valeur dans la cellule.
Si il y a une valeur, tu appelles ta seconde procédure;
Si iln'yen a pas, il alnceras ta première procédure.
c'est possible.
tu fais une 3e macro :
sub premiere
a = cells(1,1) 'tu prends une cellule ou tu tu es sure qu'il n'y auras jamais de données, le premier chiffre ligne, le 2nd colonne
if a = "" then
call (première procédure)
else
call (seconde procédure)
end if
end sub
dans ta première procédure, avant le end sub tu mets :
cells(1,1) = "première fois"
dans ta seconde procédure avant le end sub tu mets :
cells(1,1) = ""
ainsi quand tu déclenches pour la première fois, ta première procédure mettras une valeur dans la cellule.
Si il y a une valeur, tu appelles ta seconde procédure;
Si iln'yen a pas, il alnceras ta première procédure.
Salut,
Merci Melanie pour toutes les infos.
Une petite derniere, comment faire pour creer un boite de dialogue qui me dis: selectionner les taches, ensuite ma macro s'arrete, elle attend que je selectionne les taches( que je sélectionne en gros des cellules) pour passer à l'etape suivante.
Parceque moi j'ai utilisé ca:
MsgBox "Veuillez saisir les taches désirés", vbOKOnly + vbInformation, " "
Mon probleme c des que je mets OK, il passe a 'étape d'apres avant d'attendre que je selectionne es taches dont j'ai besoin. et c normale.
Mais comment faire alors?
Merci d'avance pour votre reponse.
Merci Melanie pour toutes les infos.
Une petite derniere, comment faire pour creer un boite de dialogue qui me dis: selectionner les taches, ensuite ma macro s'arrete, elle attend que je selectionne les taches( que je sélectionne en gros des cellules) pour passer à l'etape suivante.
Parceque moi j'ai utilisé ca:
MsgBox "Veuillez saisir les taches désirés", vbOKOnly + vbInformation, " "
Mon probleme c des que je mets OK, il passe a 'étape d'apres avant d'attendre que je selectionne es taches dont j'ai besoin. et c normale.
Mais comment faire alors?
Merci d'avance pour votre reponse.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 févr. 2011 à 10:03
14 févr. 2011 à 10:03
Bonjour,
Tu ne peux pas!
une macro une fois lancée doit aller jusqu'à la fin.
Il n'est pas possible de la mettre sur pause pour sélectionner des cellules puis de la faire continuer.
Tu ne peux pas!
une macro une fois lancée doit aller jusqu'à la fin.
Il n'est pas possible de la mettre sur pause pour sélectionner des cellules puis de la faire continuer.
Comment faire pour determiner le numero de ligne de la derniere cellule de ma selection.
J'ai fais un truc du genre:
Selection.End(xlDown).Row
mais il me donne le numero de ligne de la derniere cellule non vide de la colonne ou j'ai selectionné.
t'aurais une idée?
J'ai fais un truc du genre:
Selection.End(xlDown).Row
mais il me donne le numero de ligne de la derniere cellule non vide de la colonne ou j'ai selectionné.
t'aurais une idée?
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 févr. 2011 à 14:21
14 févr. 2011 à 14:21
Bonjour,
pour te répondre, j'ai besoin de savoir omment tu fais tasélection?
pour te répondre, j'ai besoin de savoir omment tu fais tasélection?
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 févr. 2011 à 14:28
14 févr. 2011 à 14:28
re,
je n'ai pas d'excel ici pour l'instant.
Essaie pour voir ce code :
if cells(1,1).select = true then 'si la cellule 1ère ligne, 2e colonne est sélectionnée
fais ce qu'il doit faire
end if
Si c'est le cas, utilises ce code.
je n'ai pas d'excel ici pour l'instant.
Essaie pour voir ce code :
if cells(1,1).select = true then 'si la cellule 1ère ligne, 2e colonne est sélectionnée
fais ce qu'il doit faire
end if
Si c'est le cas, utilises ce code.
Bonjour,
Au fait j'ai pas compris ton code.
J e vais essayer d'être plus clair.
je fais une selection de cellules de la colonne B sur Excel.
par exemple (B1:B20) ET (B35: B72), je veux quil me sorte que le numero de la derniere ligne est 72.
Schant que ma selection je la fais avec ctrl+ les ellules que je slectionnes avec la souris.
Au fait j'ai pas compris ton code.
J e vais essayer d'être plus clair.
je fais une selection de cellules de la colonne B sur Excel.
par exemple (B1:B20) ET (B35: B72), je veux quil me sorte que le numero de la derniere ligne est 72.
Schant que ma selection je la fais avec ctrl+ les ellules que je slectionnes avec la souris.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 févr. 2011 à 14:57
14 févr. 2011 à 14:57
la soultion :
tu selectionnes les cellules.
Tu crées une macro à apporter les modifs à cette lage de cellule.
par vba, tu peux pas faire ce que tu demandes ou alors je ne suis pas assez calée.
tu selectionnes les cellules.
Tu crées une macro à apporter les modifs à cette lage de cellule.
par vba, tu peux pas faire ce que tu demandes ou alors je ne suis pas assez calée.
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 429
Modifié par ccm81 le 14/02/2011 à 21:07
Modifié par ccm81 le 14/02/2011 à 21:07
bonjour à tous les deux
devrait aller, c'est plus simple que ma réponse à l'autre topic , mais moins performant (each c) au lieu de .count et s'applique a une selection de plages disjointes, ce que ne faisiat pas l'autre proposition
bonne suite
Dim r As Long, c For Each c In Selection r = c.Row Next c MsgBox (r)
devrait aller, c'est plus simple que ma réponse à l'autre topic , mais moins performant (each c) au lieu de .count et s'applique a une selection de plages disjointes, ce que ne faisiat pas l'autre proposition
bonne suite
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 429
14 févr. 2011 à 21:11
14 févr. 2011 à 21:11
re
une modif au cas ou les plages sont selectionnées au hasard (pas forcement avec des numéros de lignes croissants)
bonne suite
une modif au cas ou les plages sont selectionnées au hasard (pas forcement avec des numéros de lignes croissants)
Dim r As Long, c r = 0 For Each c In Selection If c.Row > r Then r = c.Row End If Next c MsgBox (r)
bonne suite
Bonjour,
je veux creer une liste deroulante en userform avec dessus mes noms de feuilles.
comme ca des que je choisis un nom , il me selectionne automatiquement la feuille que je ve .
Qqun peut il m'aider svp , je sias pas quoi mettre dans le code
je veux creer une liste deroulante en userform avec dessus mes noms de feuilles.
comme ca des que je choisis un nom , il me selectionne automatiquement la feuille que je ve .
Qqun peut il m'aider svp , je sias pas quoi mettre dans le code
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
15 févr. 2011 à 14:55
15 févr. 2011 à 14:55
Bonjour,
For I = 1 To Worksheets.Count
Me.Combobox1.AddItem sheets(i).name 'me = nom de ta liste déroulante
Next
dans le code de ta comobox :
a = combobox.value
sheets(a).select
For I = 1 To Worksheets.Count
Me.Combobox1.AddItem sheets(i).name 'me = nom de ta liste déroulante
Next
dans le code de ta comobox :
a = combobox.value
sheets(a).select