Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[excel]Probleme de copiede colonne dans une macro

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 !

Yannanou

XLDnaute Nouveau
Bonjour à tous j'ai un probleme de copie de colonne dans une macros, celle-ci m'affiche en erreur.
Je vous joind une partie de ma programation.



<code>
Sub Macro()
'
' Tableau_dynamique Macro
' Macro enregistrée le 24/07/2007 par M908722

'Gestion d'erreur ---------------------------------------------------------------------------------------

On Error GoTo GestionErreur

'Pretection d'une feuille --------------------------------------------------------------------------

'Worksheets("Menu").Protect UserInterfaceOnly:=True

'Ouverture des fichiers ------------------------------------------------------------------------------
Dim rangemenu As Long
rangemenu = 17

For Each WsFeuille In Worksheets

If WsFeuille.Name = "Données annuel" Or WsFeuille.Name = "Temp" Or WsFeuille.Name = "Graphique" _
Or WsFeuille.Name = "Tableau dynamique" Or WsFeuille.Name = "Temp" Or WsFeuille.Name = "Menu" Then
'Or Left(WsFeuille.Name, 4) = "Mois" Then

Else
Sheets(WsFeuille.Name).Select

'Traitement donnees -----------------------------------------------------------------------------------

caissen = ActiveSheet.Name

feuillen = caissen
Sheets(feuillen).Select
Cells.Select

Application.StatusBar = "Récupération des données de " & caissen



'Copie des données dans temp-----------------------------------------------------------------------------------

Dim nbligne As Long
' nbligne = Application.WorksheetFunction.CountA(Range("B:B"))

Range("B:B,E:E,G:G").Select <===== C'est là qu'il me plante!
Range("G1").Activate
Selection.Copy
' ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Temp").Select
nbligne = Application.WorksheetFunction.CountA(Range("a:a")) + 1
MsgBox nbligne & " " & caissen
Range("a" & nbligne).Select
ActiveSheet.Paste




Voila merci à vous de regarder

Bonne soirée


Yann
 
Re : [excel]Probleme de copiede colonne dans une macro

Re bonjour en fait j'ai fait certaines modification afin qu'il ne me mette olus de message d'erreur donc il fait des copies mais pour une seule feuille au lieu de toute.

merci beaucoup

Yann

Ci joint le script:

Sub Macro()
'
' Tableau_dynamique Macro
' Macro enregistrée le 24/07/2007 par M908722

'Gestion d'erreur ---------------------------------------------------------------------------------------

On Error GoTo GestionErreur

'Pretection d'une feuille --------------------------------------------------------------------------

'Worksheets("Menu").Protect UserInterfaceOnly:=True

'Ouverture des fichiers ------------------------------------------------------------------------------
Dim rangemenu As Long
rangemenu = 17

For Each WsFeuille In Worksheets

If WsFeuille.Name = "Données annuel" Or WsFeuille.Name = "Temp" Or WsFeuille.Name = "Graphique" _
Or WsFeuille.Name = "Tableau dynamique" Or WsFeuille.Name = "Temp" Or WsFeuille.Name = "Menu" Then

Else
Sheets(WsFeuille.Name).Select

'Traitement donnees -----------------------------------------------------------------------------------

caissen = ActiveSheet.Name
feuillen = caissen
Sheets(feuillen).Select
Cells.Select

Application.StatusBar = "Récupération des données de " & caissen
Dim nbligne As Long
nbligne = Application.WorksheetFunction.CountA(Range("B:B"))

Range("B:B,E:E,G:G").Select
Range("G1").Activate
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Temp").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
nbligne = Application.WorksheetFunction.CountA(Range("a:a")) + 1
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "mois"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Mois"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=MONTH(C[-3])"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2😀" & nbligne + 1)
Range("D2😀" & nbligne + 1).Select
Rows("1:1").Select
Selection.Font.Bold = True
ActiveWindow.SmallScroll Down:=-6

'Création du tableau dynamique et du graphique----------------------------------------------------------------

ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Tableau dynamique").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Graphique").Select
ActiveWindow.SelectedSheets.Delete
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Temp").Select
Columns("A😀").Select
Range("D1").Activate
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Temp!C1:C4").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
"Date", ColumnFields:="Caissée", PageFields:="Mois"
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Jobs"). _
Orientation = xlDataField
ActiveWorkbook.ShowPivotTableFieldList = True
Sheets("Feuil3").Select
Sheets("Feuil3").Move Before:=Sheets(3)
Sheets("Feuil3").Select
Sheets("Feuil3").Name = "Tableau dynamique"
Sheets("Tableau dynamique").Select
ActiveWorkbook.Sheets("Tableau dynamique").Tab.ColorIndex = 41
ActiveWorkbook.ShowPivotTableFieldList = False
Charts.Add
ActiveChart.SetSourceData Source:=Sheets("Tableau dynamique").Range("A3")
ActiveChart.Location Where:=xlLocationAsNewSheet
Sheets("Graph1").Select
Sheets("Graph1").Name = "Graphique"
Sheets("Graphique").Select
Sheets("Graphique").Move Before:=Sheets(5)
Sheets("Graphique").Select
ActiveWorkbook.Sheets("Graphique").Tab.ColorIndex = 45
Application.CommandBars("PivotTable").Visible = False
With ActiveChart
.DisplayBlanksAs = xlZero
.PlotVisibleOnly = True
.SizeWithWindow = False
End With
Application.ShowChartTipNames = True
Application.ShowChartTipValues = True
ActiveChart.PlotArea.Select
ActiveChart.ChartType = xlLineMarkers
With ActiveChart.PivotLayout.PivotTable.PivotFields("Caissée")
.PivotItems("ARIA").Visible = False
.PivotItems("GREE").Visible = False
.PivotItems("INFO").Visible = False
.PivotItems("S1SY").Visible = False
.PivotItems("S2SY").Visible = False
.PivotItems("SYST").Visible = False
.PivotItems("(vide)").Visible = False
End With

rangemenu = rangemenu + 1

End If

Next WsFeuille
Application.StatusBar = "Fin du processus"


Exit Sub

'Gestion Erreur -----------------------------------------------------------------------------------------------

GestionErreur:
If Err.Number = 1004 Then
'ici votre correction
Resume Next
End If
'MsgBox Err.Number & " " & Err.Description, vbOKOnly, "ERREUR"
Application.ScreenUpdating = True 'pour remettre l'affichage à jour si vous l'avez désactivé
Application.Cursor = xlDefault 'pour remettre le curseur par défaut si vous l'avez modifié

End Sub
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…