URGENT problème sur macro de copie

Ophé

XLDnaute Junior
Bonjour le forum,

j'ai encore une fois besoin de votre aide.
J'ai effectué (avec l'aide du forum) une macro ayant pour but de coller les factures manquantes d'un fichier à un autre les factures étant en colonne AA; la macro donne ca
Dim Wb As Workbook
'Application.Calculation = xlCalculationManual
nf = [Large(AA:AA, 1)]
fichier = ThisWorkbook.Path & "\Ventes commerciaux.xlsx"
Set Wb = GetObject(fichier)
With Workbooks(ThisWorkbook.Name)
lg = .Sheets("Ventes totales").Range("AA65536").End(xlUp).Row + 1
For n = 6 To Wb.Sheets("VTE QUERY").Range("AA65536").End(xlUp).Row
If Wb.Sheets("VTE QUERY").Range("AA" & n) > nf Then
.Sheets("Ventes totales").Range("A" & lg & ":AB" & lg).Value = _
Wb.Sheets("VTE QUERY").Range("A" & n & ":AB" & n).Value
lg = lg + 1
End If
Next n
End With
'Wb.Close
'Application.Calculation = xlCalculationAutomatic

Elle a fonctionné au début, mais m'indique un beug en ce moment et d'habitude j'arrive à trouver le problème mais là non, car l'écriture est la même que pour une autre macro qui fonctionne. Le beug est indiquée sur la ligne écrite en bleu et le beug indique une "incompatibilité de type".

Si vous avez une solution car la je ne comprend pas du tout.

Merci d'avance

Ophé
 

Cousinhub

XLDnaute Barbatruc
Re : URGENT problème sur macro de copie

Re-,

Roger, cette syntaxe donne la plus grande valeur de la colonne 1, correspondant à la formule :

Code:
=GRANDE.VALEUR(A:A;1)

la mise entre crochets correspond à :

Code:
nf = Evaluate("Large(A:A, 1)")

Bon W-E
 

Cousinhub

XLDnaute Barbatruc
Re : URGENT problème sur macro de copie

Re-,

pour ton souci, est-ce que les données dans :

Code:
Wb.Sheets("VTE QUERY").Range("AA" & n)

sont bien au format numérique?

essaie en rajoutant .Value à la suite :

Code:
Wb.Sheets("VTE QUERY").Range("AA" & n) .Value

ou en rajoutant Val en début (comme c'est un numéro de facture, il n'y a pas de décimales...)

Code:
If Val(Wb.Sheets("VTE QUERY").Range("AA" & n).Value) > nf Then

Peut-être?

Sinon, quand ça buggue, passe en mode "Déboggage", puis passe ton curseur sur "n", note sa valeur, et regarde dans cette ligne si la valeur de la cellule correspondante est numérique...

Peut-être???
 

Ophé

XLDnaute Junior
Re : URGENT problème sur macro de copie

Bonjour et merci de votre aide,

je n'ai pu testé vos modifications que maintenant mais malheureusement j'ai encore un problème, le beug me dit que l'indice n'appartient pas à la sélection??? J'ai bien vérifié que la colonne est en numérique etc je ne trouve pas??

Faut-il joindre un fichier pour voir d'où vient le problème?
 

Ophé

XLDnaute Junior
Re : URGENT problème sur macro de copie

Bonjour le forum,

j'ai été un peu longue pour répondre, et les fichiers étaient trop gros, j'ai donc du enlever la macro, je l'ai inscrite ici :

Sub ventes_mensuelles_commerciaux()

' Dégrouper les colonnes

ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2


Dim wbkVentesMensuellesCommerciaux As Workbook, pathWbkVentesMensuellesCommerciaux As String
'définir le chemin du classeur "Ventes commerciaux.xls"
pathWbkVentesMensuellesCommerciaux = ThisWorkbook.Path & "\Ventes mensuelles commerciaux.xls"

'ouvrir le classeur "Ventes commerciaux.xlsx"
Set wbkVentesMensuellesCommerciaux = Application.Workbooks.Open(pathWbkVentesMensuellesCommerciaux, , False)


' Effectuer le copier coller
Dim Wb As Workbook
'Application.Calculation = xlCalculationManual
nf = [Large(AA:AA, 1)]
fichier = ThisWorkbook.Path & "\Ventes mensuelles commerciaux.xls"
Set Wb = GetObject(fichier)
With Workbooks(ThisWorkbook.Name)
lg = Wb.Sheets("Ventes totales").Range("AA65536").End(xlUp).Row + 1
For n = 2 To .Sheets("VTE QUERY").Range("AA65536").End(xlUp).Row
If Val(Wb.Sheets("VTE QUERY").Range("AA" & n).Value) > nf Then
Wb.Sheets("Ventes totales").Range("A" & lg & ":AB" & lg).Value = _
.Sheets("VTE QUERY").Range("A" & n & ":AB" & n).Value
lg = lg + 1
End If
Next n
End With
'Wb.Close
'Application.Calculation = xlCalculationAutomatic



' Mise en page centrer + format date

Wb.Sheets("Ventes totales").Select
Cells.Select
With Selection
.HorizontalAlignment = xlGeneral
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

Wb.Sheets("Ventes totales").Select
Columns("Y:Z").Select
Range("Y2281").Activate
Selection.NumberFormat = "d/m/yy;@"



'Se placer sur la dernière facture de Ventes totales
Wb.Sheets("Ventes totales").Select
Range("AA1").Select
Selection.End(xlDown).Select
ActiveWindow.SmallScroll Down:=9


End Sub

Pouvez-vous m'aider?

Merci d'avance

cdlt

Ophé
 

Pièces jointes

  • Ventes mensuelles commerciaux.xls
    32.5 KB · Affichages: 147
  • TABLEAU OPHE.xlsm
    37 KB · Affichages: 67

Discussions similaires

Réponses
7
Affichages
312
Réponses
3
Affichages
288
Réponses
7
Affichages
372

Statistiques des forums

Discussions
312 094
Messages
2 085 237
Membres
102 829
dernier inscrit
cdupire