Galère macro avec développeur
Résolu
eric2027
Messages postés
289
Date d'inscription
Statut
Membre
Dernière intervention
-
eric2027 Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
eric2027 Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
Bonjour le forum
J'ai fait une macro avec le développeur, pourriez m'aider à le simplifier, de plus si vous pouviez me sélectionner jusqu'à 5000 lignes parce que je n'ai quelques lignes certainement à cause du développeur et je ne sais pas comment faire pour sélectionner jusqu'à 5000
Je peux vous envoyer une PJ
Par avance, merci pour vos solutions
Bien cordialement
ericp
Le code :
Sub Macro1()
'
' Macro1 Macro
'
'
Range("B1:S12").Select
Range("J1").Activate
Application.CutCopyMode = False
Selection.EntireRow.Delete
Range("A1").Select
Selection.EntireColumn.Delete
Range("A1:T12").Select
With Selection
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlLTR
.MergeCells = False
End With
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft
Columns("Q:Q").Select
Selection.Delete Shift:=xlToLeft
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Range("L2").Select
ActiveCell.FormulaR1C1 = "=75000+RC[1]"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L11")
Range("L2:L11").Select
Range("L1").Select
ActiveCell.FormulaR1C1 = "X"
With ActiveCell.Characters(Start:=1, Length:=1).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$R$12").AutoFilter Field:=1, Criteria1:="<>"
ActiveSheet.Range("$A$1:$R$12").AutoFilter Field:=2, Criteria1:="<>"
Range("A1:R12").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"DPP-20-1_ListeDesMissionsParArr!R1C1:R12C18", Version:=xlPivotTableVersion10 _
).CreatePivotTable TableDestination:="Feuil1!R3C1", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("2")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("3")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("X")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("3"), "Nombre de 3", _
xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("2")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("X")
.PivotItems("168500").Visible = False
.PivotItems("(blank)").Visible = False
End With
End Sub
aucun avatar ericp
Membre habitué
Membre habitué
Messages : 111
Inscription : 5 Novembre 2009
Version Excel : 2007
J'ai fait une macro avec le développeur, pourriez m'aider à le simplifier, de plus si vous pouviez me sélectionner jusqu'à 5000 lignes parce que je n'ai quelques lignes certainement à cause du développeur et je ne sais pas comment faire pour sélectionner jusqu'à 5000
Je peux vous envoyer une PJ
Par avance, merci pour vos solutions
Bien cordialement
ericp
Le code :
Sub Macro1()
'
' Macro1 Macro
'
'
Range("B1:S12").Select
Range("J1").Activate
Application.CutCopyMode = False
Selection.EntireRow.Delete
Range("A1").Select
Selection.EntireColumn.Delete
Range("A1:T12").Select
With Selection
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlLTR
.MergeCells = False
End With
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft
Columns("Q:Q").Select
Selection.Delete Shift:=xlToLeft
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Range("L2").Select
ActiveCell.FormulaR1C1 = "=75000+RC[1]"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L11")
Range("L2:L11").Select
Range("L1").Select
ActiveCell.FormulaR1C1 = "X"
With ActiveCell.Characters(Start:=1, Length:=1).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$R$12").AutoFilter Field:=1, Criteria1:="<>"
ActiveSheet.Range("$A$1:$R$12").AutoFilter Field:=2, Criteria1:="<>"
Range("A1:R12").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"DPP-20-1_ListeDesMissionsParArr!R1C1:R12C18", Version:=xlPivotTableVersion10 _
).CreatePivotTable TableDestination:="Feuil1!R3C1", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("2")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("3")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("X")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("3"), "Nombre de 3", _
xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("2")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("X")
.PivotItems("168500").Visible = False
.PivotItems("(blank)").Visible = False
End With
End Sub
aucun avatar ericp
Membre habitué
Membre habitué
Messages : 111
Inscription : 5 Novembre 2009
Version Excel : 2007
A voir également:
- Galère macro avec développeur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
26 réponses
Bonjour,
Je te propose ceci à tester
Je te propose ceci à tester
Sub Macro1() ' ' Macro1 Macro ' ' Rows("1:2").Delete Dim der As Long der = ActiveSheet.UsedRange.Rows.Count With Range("A1:T12") .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlLTR .MergeCells = False End With Columns("M:N").Delete Shift:=xlToLeft Columns("Q:Q").Delete Shift:=xlToLeft Columns("L:L").Insert Shift:=xlToRight Range("L2:L" & der).FormulaR1C1 = "=75000+RC[1]" Range("L1").FormulaR1C1 = "X" With Range("L1").Characters(Start:=1, Length:=1).Font .Name = "Arial" .FontStyle = "Gras" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With With Range("$A$1:$R$" & der) .AutoFilter Field:=1, Criteria1:="<>" .AutoFilter Field:=2, Criteria1:="<>" End With Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "DPP-20-1_ListeDesMissionsParArr!R1C1:R" & der & "C18", Version:=xlPivotTableVersion10 _ ).CreatePivotTable TableDestination:=ActiveSheet.Range("A3"), TableName:= _ "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10 With ActiveSheet.PivotTables("Tableau croisé dynamique1") With .PivotFields("2") .Orientation = xlRowField .Position = 1 .Orientation = xlColumnField .Position = 1 End With With .PivotFields("3") .Orientation = xlRowField .Position = 2 End With With .PivotFields("X") .Orientation = xlRowField .Position = 3 .PivotItems("168500").Visible = False .PivotItems("(blank)").Visible = False End With .AddDataField ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("3"), "Nombre de 3", xlCount End With End Sub
Bonjour gbinforme
un grand merci de t'être arrêté sur mon soucis
ça me beug à ce niveau
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:
je ne vois pas d'ou cela peut venir
un grand merci de t'être arrêté sur mon soucis
ça me beug à ce niveau
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:
je ne vois pas d'ou cela peut venir
Re
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"DPP-20-1_ListeDesMissionsParArr!R1C1:R" & der & "C18", Version:=xlPivotTableVersion10 _
).CreatePivotTable TableDestination:=ActiveSheet.Range("A3"), TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
erreur exécution "1004"
Le nom du champs du tableau croisé dynamique n'est pas valide
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"DPP-20-1_ListeDesMissionsParArr!R1C1:R" & der & "C18", Version:=xlPivotTableVersion10 _
).CreatePivotTable TableDestination:=ActiveSheet.Range("A3"), TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
erreur exécution "1004"
Le nom du champs du tableau croisé dynamique n'est pas valide
Aie,
dans ma macro, je les enlève au fur et à mesure de l'évolution de mon travail, cela voudrait dire qu(il faut que je fasse d'abord une mise en page de ma ligne de titre, idem pour les colonnes que j'enlève.
Pourtant quand lance ma macro, tout s'effectue sans problème.
Ou alors faire 2 macros, une pour enlever les colonnes et refaire ma ligne de titre ?
dans ma macro, je les enlève au fur et à mesure de l'évolution de mon travail, cela voudrait dire qu(il faut que je fasse d'abord une mise en page de ma ligne de titre, idem pour les colonnes que j'enlève.
Pourtant quand lance ma macro, tout s'effectue sans problème.
Ou alors faire 2 macros, une pour enlever les colonnes et refaire ma ligne de titre ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et si je te joins un fichier ? tu pourrais voir si il y a une solution
https://www.cjoint.com/c/GDsiK66h8Is
https://www.cjoint.com/c/GDsiK66h8Is
Bonsoir,
Oui c'est pour ça que j'aimerais une macro sur cette base car j'ai des dizaines de fichiers à gérer en début de semaine et cela me ferait un max de temps pour faire mes stats ensuite.
Oui c'est pour ça que j'aimerais une macro sur cette base car j'ai des dizaines de fichiers à gérer en début de semaine et cela me ferait un max de temps pour faire mes stats ensuite.
Bonjour,
Ton classeur est vraiment curieux et je ne sais pas si les autres sont identiques. J'ai adapté la macro en fonction du classeur et elle est dans un classeur spécifique.
- tu l'ouvres
- tu ouvres les autres classeurs au fur et à mesure
- tu lances la macro avec le raccourci "ctrl+t"
Avec ton exemple cela fonctionne.
http://www.cjoint.com/c/GDthCmmGMbl
Ton classeur est vraiment curieux et je ne sais pas si les autres sont identiques. J'ai adapté la macro en fonction du classeur et elle est dans un classeur spécifique.
- tu l'ouvres
- tu ouvres les autres classeurs au fur et à mesure
- tu lances la macro avec le raccourci "ctrl+t"
Avec ton exemple cela fonctionne.
http://www.cjoint.com/c/GDthCmmGMbl
Bonjour,
sur mon exemple cela fonctionne, mais des que je mets ta macro ma base réel
ça me beug à ce niveau :
With .PivotFields("2")
sur mon exemple cela fonctionne, mais des que je mets ta macro ma base réel
ça me beug à ce niveau :
With .PivotFields("2")
Bonjour,
J'ai testé et ça marche du tonnerre, franchement tu es génial, je vais gagner un maximum de temps et me consacrer à fond sur mes stats en faisant des mises en page de tonnerre
Encore un grand, grand merci à toi et tes connaissances
Je mets en résolu
J'ai testé et ça marche du tonnerre, franchement tu es génial, je vais gagner un maximum de temps et me consacrer à fond sur mes stats en faisant des mises en page de tonnerre
Encore un grand, grand merci à toi et tes connaissances
Je mets en résolu
Franchement gbinforme,
Je suis sincère, grace à tes connaissances, tu vas me permettre de produire un max de travail, je suis chez moi et grace à toi je vais pouvoir rattraper le retard que j'avais et c'est pas en HS, juste une reconnaissance du travail founi
Mille merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Je suis sincère, grace à tes connaissances, tu vas me permettre de produire un max de travail, je suis chez moi et grace à toi je vais pouvoir rattraper le retard que j'avais et c'est pas en HS, juste une reconnaissance du travail founi
Mille merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Je reviens vers toi parce que mes supérieurs hiérarchiques me prennent la tête pour que je dé-selectionne dans la colonne 5 la case "y" et dans la colonne 6 la case "elle".
Ils sont compliqués et fatiguants
Est ce que tu crois que cela est possible si oui, je te mets en lien le fichier
https://www.cjoint.com/c/GDzqmgueJlt
Je te remercie
Bien cordialement
Ils sont compliqués et fatiguants
Est ce que tu crois que cela est possible si oui, je te mets en lien le fichier
https://www.cjoint.com/c/GDzqmgueJlt
Je te remercie
Bien cordialement
Bonjour gbinforme
Je reviens vers toi parce que mes supérieurs hiérarchiques me prennent la tête pour que je dé-selectionne dans la colonne 5 la case "y" et dans la colonne 6 la case "elle".
Ils sont compliqués et fatiguants
Est ce que tu crois que cela est possible si oui, je te mets en lien le fichier
https://www.cjoint.com/c/GDzqmgueJlt
Je te remercie
Bien cordialement
Je reviens vers toi parce que mes supérieurs hiérarchiques me prennent la tête pour que je dé-selectionne dans la colonne 5 la case "y" et dans la colonne 6 la case "elle".
Ils sont compliqués et fatiguants
Est ce que tu crois que cela est possible si oui, je te mets en lien le fichier
https://www.cjoint.com/c/GDzqmgueJlt
Je te remercie
Bien cordialement
Bonsoir Éric,
Voici donc ton classeur macro modifié :
http://www.cjoint.com/c/GDzuMFKYtOl
L'on voit bien que les statistiques diffusées ne sont pas nécessairement le reflet de la réalité mais cela ne me surprends pas ;-)
Voici donc ton classeur macro modifié :
http://www.cjoint.com/c/GDzuMFKYtOl
L'on voit bien que les statistiques diffusées ne sont pas nécessairement le reflet de la réalité mais cela ne me surprends pas ;-)
Bonjour Éric,
Tu n'as pas utilisé la dernière version...
https://www.dropbox.com/s/b899tw0t2s6jgqx/Macro_eric.xlsm?dl=0
Tu n'as pas utilisé la dernière version...
https://www.dropbox.com/s/b899tw0t2s6jgqx/Macro_eric.xlsm?dl=0
J'ai bien téléchargé la derniere version avec le nouveau site pour aller chercher ta macro que j'ai testé et en colonne "5, j'ai toujours le Y" et en colonne "6 j'ai toujours les elles"
Bonjour Éric,
Attention j'ai toujours le Y" et en colonne "6 j'ai toujours les elles" tu avais demandé
je dé-selectionne dans la colonne 5 la case "y" et dans la colonne 6 la case "elle".
et donc les "ELLES" restent.
Voici ton classeur du poste 20 passé par la macro.
https://www.cjoint.com/c/GDAqbrt7Gml
Attention j'ai toujours le Y" et en colonne "6 j'ai toujours les elles" tu avais demandé
je dé-selectionne dans la colonne 5 la case "y" et dans la colonne 6 la case "elle".
et donc les "ELLES" restent.
Voici ton classeur du poste 20 passé par la macro.
https://www.cjoint.com/c/GDAqbrt7Gml
Je pense que je me mélange les pieds si c'est possible, c'est enlever les lignes entières ou il y a des "y" et des "elle"
c'est bizarre je ne suis plus sur l'autre site pour télécharger tes fichiers
c'est bizarre je ne suis plus sur l'autre site pour télécharger tes fichiers
Effectivement je restais bloqué sur "elle" et je n'ai pas vu que c'était les "elles" avec un s qui restait
Quand je change "y" par un nom et "elle" par le même les lignes ne sont pas enlevés,
Quand je change "y" par un nom et "elle" par le même les lignes ne sont pas enlevés,
bonsoir,
Quand je change "y" par un nom et "elle" par le même les lignes ne sont pas enlevés
C'est-à-dire ?
Si au lieu d'"Y" tu mets Dupont et au lieu d'"elle" tu mets Dupont, la ligne reste, cela me semble normal, les lignes sont supprimées selon leur contenu.
Si ensuite tu remplaces Dupont par Y, il sera dans le TCD.
Quand je change "y" par un nom et "elle" par le même les lignes ne sont pas enlevés
C'est-à-dire ?
Si au lieu d'"Y" tu mets Dupont et au lieu d'"elle" tu mets Dupont, la ligne reste, cela me semble normal, les lignes sont supprimées selon leur contenu.
Si ensuite tu remplaces Dupont par Y, il sera dans le TCD.
Mais je mets "dupont" dans la macro a la place de "y", et que dupont est dans ma base fichier et que je mets "dupont" à la place de 'elle" et que dupont est dans ma base fichier, pourquoi les lignes se s'enlèvent elle pas ,
C'est là que je ne comprends pas les macros
C'est là que je ne comprends pas les macros
Tes données sont en majuscules sur tes classeurs et j'en ai tenu compte mais pas toi alors remplaces la ligne par celle-ci et cela fonctionnera
Ton exemple ne correspondait pas à tes classeurs et là c'est ton écriture qui ne correspond pas à la réalité des données : l'informatique est binaire et ne s’accommode que très mal de l'à peu près.
Voilà l'explication de ton incompréhension : C'est là que je ne comprends pas les macros il faut être très précis lorsque l'on veut coder car l'imagination n'est guère créatrice si on le fait au hasard.
If UCase(Cells(lig, "F").Value) = UCase("dupont") Or UCase(Cells(lig, "G").Value) = UCase("durand") Then
Ton exemple ne correspondait pas à tes classeurs et là c'est ton écriture qui ne correspond pas à la réalité des données : l'informatique est binaire et ne s’accommode que très mal de l'à peu près.
Voilà l'explication de ton incompréhension : C'est là que je ne comprends pas les macros il faut être très précis lorsque l'on veut coder car l'imagination n'est guère créatrice si on le fait au hasard.
Bonjour gbinform
Tu es GÉNIE, grâce à toi, j'ai un autoroute devant moi pour faire ce que mes chefs veulent, et qu'ils me laissent tranquillement travailler.
Il me reste un an à tirer, après c'est la retraite et grâce à ta macro, je vois cette dernière année avec tranquillité et sérénité
Excuse moi si je me suis mal exprimé mais tu as su lire entre mes lignes
de plus d'être un génie, tu es d'une patience à tout égard
Bien à toi, et mille merci
Tu es GÉNIE, grâce à toi, j'ai un autoroute devant moi pour faire ce que mes chefs veulent, et qu'ils me laissent tranquillement travailler.
Il me reste un an à tirer, après c'est la retraite et grâce à ta macro, je vois cette dernière année avec tranquillité et sérénité
Excuse moi si je me suis mal exprimé mais tu as su lire entre mes lignes
de plus d'être un génie, tu es d'une patience à tout égard
Bien à toi, et mille merci
Bonjour Éric,
Si tu as plusieurs noms à supprimer dans tes classeurs, il faudrait procéder tout à fait autrement en les mettant tout simplement dans la feuille du classeur macro ce qui évite toute erreur de manipulation dans la macro.
Voici le lien : https://www.cjoint.com/c/GDBhmnvpkJl
Tu peux rajouter des noms et modifier comme tu veux les 2 colonnes.
Si tu as plusieurs noms à supprimer dans tes classeurs, il faudrait procéder tout à fait autrement en les mettant tout simplement dans la feuille du classeur macro ce qui évite toute erreur de manipulation dans la macro.
Voici le lien : https://www.cjoint.com/c/GDBhmnvpkJl
Tu peux rajouter des noms et modifier comme tu veux les 2 colonnes.