Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Sang1
  • 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 !

S

Sang1

Guest
Bonjour,

Je viens de faire une macro pour effectuer le traitement de données, mais il y a un bug et je trouve pas d'ou il vient.
J'ai quand meme une petite idée sur la question, je pense que le bug est du au fait que lorsque je fait mon tableau dynamique, je dois selectionner toute ma liste de données et celle ci peut etre plus ou moins longue, suisvant le nombre de datas.

Merci d avance
 

Pièces jointes

Re : bug macro

Bonjour,

Essayez avec votre code modifié

Code:
Sub traitement()

Range("B2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[1]C[-1]-RC[-1]"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B23")
Range("B2:B23").Select
Columns("B:B").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Columns("C:C").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Selection.ColumnWidth = 13.43
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[1]"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C23")
Range("C2:C23").Select
Range("A1:D23").Select

    '--- Modification ---
Sheets("sheet2").Activate
Sheets("sheet2").Cells.Delete
      '### [Book4]    ??? ###
'"Sheet1!R1C1:R23C4").CreatePivotTable TableDestination:="[Book4]Sheet2!R1C1"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Sheet1!R1C1:R23C4").CreatePivotTable TableDestination:="Sheet2!R1C1" _
    , TableName:="PivotTable11", DefaultVersion:=xlPivotTableVersion10
    '---------------------
    
    
With ActiveSheet.PivotTables("PivotTable11").PivotFields("temps")
    .Orientation = xlRowField
    .Position = 1
End With
ActiveSheet.PivotTables("PivotTable11").AddDataField ActiveSheet.PivotTables( _
    "PivotTable11").PivotFields("x"), "Count of x", xlCount
Range("A1").Select
ActiveSheet.PivotTables("PivotTable11").PivotFields("Count of x").Function = _
    xlSum
Range("A2").Select
Selection.Group Start:=True, End:=True, By:=1, Periods:=Array(False, _
    False, False, True, False, False, False)
Range("B3:B5").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("E11").Select
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : bug macro

Merci pour ta réponse, sa m aide.
Mais en faite je souhaite que ma macro traite toute la série de donnée, peu importe le nombre de datas. Pour l instant elle traite un nombre constant de ligne et je souhaite quelle s adapte automatiquement.

Merci d'avance.
 
Re : bug macro

une solution pour faire vite

'placer l'instruction suivante au début de ta macro
Set srcSH = ActiveSheet

'utiliser l'instruction ci-dessous pour la création du tableau
' elle suppose qu'il n'y ait aucune autre cellule adjacente à ton tableau source que tu ne veuilles pas intégrer
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=srcSH.[A1].CurrentRegion).CreatePivotTable TableDestination:="Sheet2!R1C1" _
, TableName:="PivotTable11", DefaultVersion:=xlPivotTableVersion10



bye
 
Re : bug macro

Je n'y arrive toujours pas, j'ai fait tout ce que lon m a demandé et sa marche toujours pas.
En faite, je cherche a remplacer toute les instructions du code suivant qui vont jusqu' a la ligne 23 en instructions qui vont jusqu'a la derniere ligne comportant un chiffre.
Par quoi faut il que je remplace mes valeurs "B23" ; "C23" ......


Range("B2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[1]C[-1]-RC[-1]"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B23")
Range("B2:B23").Select
Columns("B:B").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Columns("C:C").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Selection.ColumnWidth = 13.43
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[1]"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C23")
Range("C2:C23").Select
Range("A1😀23").Select


Merci d avance
 
Re : bug macro

Selection.AutoFill Destination:=Range("B2:B" & (Cells(ActiveSheet.Rows.count, 1).End(xlUp).Row )

'ou bien en décrémentant d'une ligne la plage de destination, car ta formule retourne #### sinon
Selection.AutoFill Destination:=Range("B2:B" & (Cells(ActiveSheet.Rows.count, 1).End(xlUp).Row -1)
 
Re : bug macro


Merci pour ton aide stephane, c'est sympa.
Maintenant j'ai un bug qui me fait planter la macro, je comprned pas pourquoi.
Je me demandais si il n y avait pas une erreur dans le code fourni. Ce ne serait pas :
Selection.AutoFill Destination:=Range("B2:B" & (Cells(ActiveSheet.Rows.count, 1).End(xlDown.Row -1)???

Merci d avance
 

Pièces jointes

Dernière modification par un modérateur:
Re : bug macro

En gros je cherche a savoir pas quoi je peu remplacer :

Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B23")
Range("B2:B23").Select

Afin que la macro sélectionne toutes les lignes ayant des valeurs au lieu d'aller jusqu'a la ligne 23.

Merci d avance
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
2 K
Réponses
6
Affichages
655
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…