URGENT problème sur macro de copie

  • Initiateur de la discussion Initiateur de la discussion Ophé
  • 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 !

O

Ophé

Guest
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é
 
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
 
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???
 
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?
 
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

- 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
5
Affichages
832
Réponses
3
Affichages
580
Réponses
7
Affichages
797
Réponses
3
Affichages
620
  • Question Question
Microsoft 365 problème date
Réponses
7
Affichages
712
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
838
Retour