Macro en probleme
Marie Chant
Messages postés
136
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je n'arrive pas a faire ce que doit faire ma macro
J'aurais besoin de votre aide s.v.p.
Ce que je veux c'est de faire une copie de la feuille factures
Supprimer la ligne 1 et 2 de la feuille factures (2)
Insérer un filtre a la ligne 1 feuille factures (2)
Sélectionner dans la colonne I AVRIL-15 et Y dans la colonne AF
Supprimer les lignes qui renferme ses deux conditions
remettre les données disponibles
Venir sélectionner les comptes 60", "61", "62", "63", "70", "90", "110", "120"de la colonne U
Venir copier sur la feuille 3 le résultat
Changer le nom de la feuille 3
FAIRE UN TABLEAU CROISÉ DYNAMYQUE CLASSIQUE DE cette FEUILLE
Mon problème est que quand dans la colonne AF il y a des N,elle me les enleve aussi mais je ne veut pas.
Dans la colonne AF il y a des Y des N et des cases vides.
Je veux les cases N et les vides aussi tant qu'il y a quelque chose d'écris dans la conne A
Mon nombre de lignes varie d'un mois a l'autre
je vous remercie de votre aide cela est apprécié
Voici ma macro qui m'enlève les N dans la conne AF
Je n'arrive pas a faire ce que doit faire ma macro
J'aurais besoin de votre aide s.v.p.
Ce que je veux c'est de faire une copie de la feuille factures
Supprimer la ligne 1 et 2 de la feuille factures (2)
Insérer un filtre a la ligne 1 feuille factures (2)
Sélectionner dans la colonne I AVRIL-15 et Y dans la colonne AF
Supprimer les lignes qui renferme ses deux conditions
remettre les données disponibles
Venir sélectionner les comptes 60", "61", "62", "63", "70", "90", "110", "120"de la colonne U
Venir copier sur la feuille 3 le résultat
Changer le nom de la feuille 3
FAIRE UN TABLEAU CROISÉ DYNAMYQUE CLASSIQUE DE cette FEUILLE
Mon problème est que quand dans la colonne AF il y a des N,elle me les enleve aussi mais je ne veut pas.
Dans la colonne AF il y a des Y des N et des cases vides.
Je veux les cases N et les vides aussi tant qu'il y a quelque chose d'écris dans la conne A
Mon nombre de lignes varie d'un mois a l'autre
je vous remercie de votre aide cela est apprécié
Voici ma macro qui m'enlève les N dans la conne AF
Sheets("factures").Select Sheets("Extrait des factures").Copy Before:=Sheets(1) Rows("1:2").Select Selection.Delete Shift:=xlUp Rows("1:1").Select Selection.AutoFilter ActiveWorkbook.Worksheets("factures (2)").AutoFilter.Sort. _ SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:= _ xlAscending, DataOption:=xlSortNormal Dim Dernligne As Long Dernligne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row For n = Dernligne To 1 Step -1 If Range("I" & n) = "AVRIL-15" And Range("Af" & n) = "Y" Then Rows(n & ":" & n).Select Selection.Delete Shift:=xlUp End If End [/contents/446-fichier-sub Sub] Range("U1").Select ActiveSheet.Range("$A$1:$AK$50000").AutoFilter Field:=21, Criteria1:=Array( _ "60", "61", "62", "63", "70", "90", "110", "120"), [/download/telecharger-34082790-operator Operator]:=xlFilterValues Cells.Select Range("R1").Activate Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste Sheets("Feuil3").Select Sheets("Feuil3").Name = "fact.60à120" Sheets("Ext.fact.510060à624760").Select Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "fact.60à120!R1C1:R1048576C37", Version:= _ xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4!R3C1", _ TableName:="Tableau croisé dynamique1", DefaultVersion:= _ xlPivotTableVersion14 Sheets("Feuil4").Select Cells(3, 1).Select With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Apparenté") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Nom du fournisseur") .Orientation = xlRowField .Position = 2
A voir également:
- Macro en probleme
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
3 réponses
Bonjour,
Lorsque tu mets une macro utilises la bannière code sinon c'est illisible.
Ton problème est assez ésotérique :
Mon problème est que quand dans la colonne AF il y a des N,elle me les enleve aussi mais je ne veut pas.
...
Voici ma macro qui m'enlève les N dans la conne AF
???
Lorsque tu mets une macro utilises la bannière code sinon c'est illisible.
Ton problème est assez ésotérique :
Mon problème est que quand dans la colonne AF il y a des N,elle me les enleve aussi mais je ne veut pas.
...
Voici ma macro qui m'enlève les N dans la conne AF
???
Je m'excuse
je vois que je ne suis pas claire dans ma demande.
J'essaie ce matin de faire le ficher mais je n'y arrive plus elle me bloque a For n.
Ce que je voudrais que la macro fasse est
- Une copie de la feuille Factures
- De la feuille Factures (2) supprime les deux premiere lignes
-Insere un filtre sur la premiere ligne
- Selectionne dans la colonne I les AVR-15 et dans la colonne AF les Y
Supprime les lignes qui rempli ses deux conditions
- Remet visible ce qui reste sur la feuille
- Insere une colonne apres la C
-Nomme la Parents et faire la recherche V(=RECHERCHEV(C111;'Liste des fournisseurs apparent'!A:E;4;FAUX)
-Va a la colonne U 1 selectionne les comptes 60,70,90,110,120,130,140
copie le resultat de la feuille sur une autre soit (feuille 3)
Renomme la feuille et faire un tableau croisé dynamique de cette feuille.
Voici ma macro qui ne fonctionne pas je ne sais pas ou je me suis trompé.
Elle me mets en erreur a For n Erreur de compilation: Variable non définie
de plus elle m'enleve les n dans la colonne Af et je veux les garder.
heets("Factures").Select
Sheets("Factures").Copy Before:=Sheets(1)
Rows("1:2").Select
Selection.Delete Shift:=xlUp
Rows("1:1").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort. _
SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim Dernligne As Long
Dernligne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For n = Dernligne To 1 Step -1
If Range("A" & n) <> "" And Range("I" & n) = "AVR-15" And Range("Af" & n) = "Y" Then
Rows(n & ":" & n).Select
Selection.Delete Shift:=xlUp
End If
Next n
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
ActiveCell.FormulaR1C1 = "Parents"
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'Liste parent'!C[-3]:C[1],4,FALSE)"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D5000")
Range("D2:D5000").Select
Range("U1").Select
ActiveSheet.Range("$A$1:$AK$50000").AutoFilter Field:=21, Criteria1:=Array( _
"60", "70", "90", "110", "120", "130", "140"), Operator:=xlFilterValues
Cells.Select
Range("R1").Activate
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
'
Sheets("Feuil3").Select
Sheets("Feuil3").Name = "fact 60à140"
Sheets("fact de 60à140").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"fact 60à140!R1C1:R1048576C37", Version:= _
xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4!R3C1", _
TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion14
Sheets("Feuil4").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Parents")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nom du fournisseur")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant CAN"), _
"Montant CAN", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Compte")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Apparenté"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
Columns("A:A").EntireColumn.AutoFit
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre Montant CAN")
.Caption = "Somme de Mnt ligne CND"
.Function = xlSum
End With
'
' Macro13 Macro'
Columns("C").Select
ActiveSheet.UsedRange.EntireColumn.Select
Selection.NumberFormat = _
"_ * #,##0.00_ [$$-C0C]_ ;_ * -#,##0.00 [$$-C0C]_ ;_ * ""-""??_ [$$-C0C]_ ;_ @_ "
End Sub
J'ai un fichier que je peux vous faire parvenir.
Merci beaucoup de votre aide
je vois que je ne suis pas claire dans ma demande.
J'essaie ce matin de faire le ficher mais je n'y arrive plus elle me bloque a For n.
Ce que je voudrais que la macro fasse est
- Une copie de la feuille Factures
- De la feuille Factures (2) supprime les deux premiere lignes
-Insere un filtre sur la premiere ligne
- Selectionne dans la colonne I les AVR-15 et dans la colonne AF les Y
Supprime les lignes qui rempli ses deux conditions
- Remet visible ce qui reste sur la feuille
- Insere une colonne apres la C
-Nomme la Parents et faire la recherche V(=RECHERCHEV(C111;'Liste des fournisseurs apparent'!A:E;4;FAUX)
-Va a la colonne U 1 selectionne les comptes 60,70,90,110,120,130,140
copie le resultat de la feuille sur une autre soit (feuille 3)
Renomme la feuille et faire un tableau croisé dynamique de cette feuille.
Voici ma macro qui ne fonctionne pas je ne sais pas ou je me suis trompé.
Elle me mets en erreur a For n Erreur de compilation: Variable non définie
de plus elle m'enleve les n dans la colonne Af et je veux les garder.
heets("Factures").Select
Sheets("Factures").Copy Before:=Sheets(1)
Rows("1:2").Select
Selection.Delete Shift:=xlUp
Rows("1:1").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort. _
SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Factures (2)").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim Dernligne As Long
Dernligne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For n = Dernligne To 1 Step -1
If Range("A" & n) <> "" And Range("I" & n) = "AVR-15" And Range("Af" & n) = "Y" Then
Rows(n & ":" & n).Select
Selection.Delete Shift:=xlUp
End If
Next n
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
ActiveCell.FormulaR1C1 = "Parents"
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'Liste parent'!C[-3]:C[1],4,FALSE)"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D5000")
Range("D2:D5000").Select
Range("U1").Select
ActiveSheet.Range("$A$1:$AK$50000").AutoFilter Field:=21, Criteria1:=Array( _
"60", "70", "90", "110", "120", "130", "140"), Operator:=xlFilterValues
Cells.Select
Range("R1").Activate
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
'
Sheets("Feuil3").Select
Sheets("Feuil3").Name = "fact 60à140"
Sheets("fact de 60à140").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"fact 60à140!R1C1:R1048576C37", Version:= _
xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4!R3C1", _
TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion14
Sheets("Feuil4").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Parents")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nom du fournisseur")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant CAN"), _
"Montant CAN", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Compte")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Apparenté"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
Columns("A:A").EntireColumn.AutoFit
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre Montant CAN")
.Caption = "Somme de Mnt ligne CND"
.Function = xlSum
End With
'
' Macro13 Macro'
Columns("C").Select
ActiveSheet.UsedRange.EntireColumn.Select
Selection.NumberFormat = _
"_ * #,##0.00_ [$$-C0C]_ ;_ * -#,##0.00 [$$-C0C]_ ;_ * ""-""??_ [$$-C0C]_ ;_ @_ "
End Sub
J'ai un fichier que je peux vous faire parvenir.
Merci beaucoup de votre aide
Bonjour,
Tu as sans doute bien essayé d'utiliser la bannière code mais sans grand succès : il faut, par exemple, sélectionner ta macro avant de cliquer sur le bouton.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
Tu as sans doute bien essayé d'utiliser la bannière code mais sans grand succès : il faut, par exemple, sélectionner ta macro avant de cliquer sur le bouton.
ActiveSheet.UsedRange.EntireColumn.Select Selection.NumberFormat = _ "_ * #,##0.00_ [$$-C0C]_ ;_ * -#,##0.00 [$$-C0C]_ ;_ * ""-""??_ [$$-C0C]_ ;_ @_ " End Sub
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
Voici mon fichier http://cjoint.com/?0EfsM2ah3Jm
<code>Sheets("factures").Select Sheets("factures").Copy Before:=Sheets(1) Rows("1:2").Select Selection.Delete Shift:=xlUp Rows("1:1").Select Selection.AutoFilter ActiveWorkbook.Worksheets("factures (2)").AutoFilter.Sort. _ SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:= _ xlAscending, DataOption:=xlSortNormalDim Dernligne As LongDernligne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).RowFor n = Dernligne To 1 Step -1If Range("I" & n) = "AVRIL-15" And Range("Af" & n) = "Y" ThenRows(n & ":" & n).SelectSelection.Delete Shift:=xlUpEnd If Range("U1").Select ActiveSheet.Range("$A$1:$AK$50000").AutoFilter Field:=21, Criteria1:=Array( _ "60", "61", "62", "63", "70", "90", "110", "120"), Operator:=xlFilterValues Cells.Select Range("R1").Activate Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste Sheets("Feuil3").Select Sheets("Feuil3").Name = "fact.60à120" Sheets("Ext.fact.60à120").Select Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "fact.60à120!R1C1:R1048576C37", Version:= _ xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4!R3C1", _ TableName:="Tableau croisé dynamique1", DefaultVersion:= _ xlPivotTableVersion14 Sheets("Feuil4").Select Cells(3, 1).Select With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Parents") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Nom du fournisseur") .Orientation = xlRowField .Position = 2<code>
Je voudrais que ma macro
1- fasse une copie de la feuilles "Factures"
2- supprime les deux premieres lignes de la feuille Factures (2)
3- insérer un filtre
4- filtrer a la colonne I les Avr-15 et dans la colonne AF les Y seulement
5- supprimer le résultat
6-enleve le filtre
7- remettre le filtre
8- inserer une colonne apres c
9- mettre ma formule en D2 recherche v et la descendre jusqu'en bas(ma meme nombre de lignes d'un mois a l'autre)
10-filtreer en AF les comptes 60", "61", "62", "63", "70", "90", "110", "120 seuelemnt)
11- venir compier le résultat sur la feuille apres soit feuille 3
12- changer le nom de la feuille et faire un tableau croisé dynamique option affichage classique.
merci beaucoup de votre aide
<code>Sheets("factures").Select Sheets("factures").Copy Before:=Sheets(1) Rows("1:2").Select Selection.Delete Shift:=xlUp Rows("1:1").Select Selection.AutoFilter ActiveWorkbook.Worksheets("factures (2)").AutoFilter.Sort. _ SortFields.Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:= _ xlAscending, DataOption:=xlSortNormalDim Dernligne As LongDernligne = ActiveSheet.Range("A" & Rows.Count).End(xlUp).RowFor n = Dernligne To 1 Step -1If Range("I" & n) = "AVRIL-15" And Range("Af" & n) = "Y" ThenRows(n & ":" & n).SelectSelection.Delete Shift:=xlUpEnd If Range("U1").Select ActiveSheet.Range("$A$1:$AK$50000").AutoFilter Field:=21, Criteria1:=Array( _ "60", "61", "62", "63", "70", "90", "110", "120"), Operator:=xlFilterValues Cells.Select Range("R1").Activate Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste Sheets("Feuil3").Select Sheets("Feuil3").Name = "fact.60à120" Sheets("Ext.fact.60à120").Select Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "fact.60à120!R1C1:R1048576C37", Version:= _ xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4!R3C1", _ TableName:="Tableau croisé dynamique1", DefaultVersion:= _ xlPivotTableVersion14 Sheets("Feuil4").Select Cells(3, 1).Select With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Parents") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Nom du fournisseur") .Orientation = xlRowField .Position = 2<code>
Je voudrais que ma macro
1- fasse une copie de la feuilles "Factures"
2- supprime les deux premieres lignes de la feuille Factures (2)
3- insérer un filtre
4- filtrer a la colonne I les Avr-15 et dans la colonne AF les Y seulement
5- supprimer le résultat
6-enleve le filtre
7- remettre le filtre
8- inserer une colonne apres c
9- mettre ma formule en D2 recherche v et la descendre jusqu'en bas(ma meme nombre de lignes d'un mois a l'autre)
10-filtreer en AF les comptes 60", "61", "62", "63", "70", "90", "110", "120 seuelemnt)
11- venir compier le résultat sur la feuille apres soit feuille 3
12- changer le nom de la feuille et faire un tableau croisé dynamique option affichage classique.
merci beaucoup de votre aide
J'ai refais mes devoirs. Voir plus bas.
Je te remercie de ton aide. J'en ai de besoin!
Je voudrais que ma macro
1- fasse une copie de la feuilles "Factures"
2- supprime les deux premieres lignes de la feuille Factures (2)
3- insérer un filtre
4- filtrer a la colonne I les Avr-15 et dans la colonne AF les Y seulement
5- supprimer le résultat
6-enleve le filtre
7- remettre le filtre
8- inserer une colonne apres c
9- mettre ma formule en D2 recherche v et la descendre jusqu'en bas(ma meme nombre de lignes d'un mois a l'autre)
10-filtreer en AF les comptes 60", "61", "62", "63", "70", "90", "110", "120 seuelemnt)
11- venir compier le résultat sur la feuille apres soit feuille 3
12- changer le nom de la feuille et faire un tableau croisé dynamique option affichage classique.
merci beaucoup de votre aide