N'étant pas très doué en VBA Excel, je me permet de vous demander de l'aide après avoir chercher mes réponses sur les forum, sans résultats...
Dans une macro excel, je vais récupérer des valeurs (valeurs historiques d'un autre logiciel).
Ensuite, je veux faire des calculs et mettre en forme ces valeurs dans mon fichier excel. Ca parait simple...
A un moment je veux copier/coller les valeurs récupérés de l'autre logiciel, mais je pense que la recuperation n'est pas terminé, alors que la commande de copier/coller est déjà passé, donc, j'obtiens aucune valeur dans ma cellule de destination.
Comment je pourrais faire pour attendre (et être sur) que mes cellules de recuperation des historiques soit bien mise à jour, avant de faire le copier/coller J'ai essayé "DoEvents" ou "Calculate", mais ca ne fonctionne pas...
Si qq1 pouvait m'aider...
Merci d'avance..
Ci-dessous le code
Sub Récupération_compteur_moteur() ' ' ' MACRO RECUPERANT LES VALEURS HISTORIQUE ' ' ' ' Déclaration des variables
Dim Derlig As Long Dim Données As Worksheet Set Données = Worksheets("DATA") Dim i As Integer Dim j As Integer Dim text As String Dim calc As Long
Application.ScreenUpdating = False
' Effacement colonnes B, C, D, E, F, G et H de "DATA"
' Récupération de la valeur du compteur moteur en s
text = Données.Cells(i, 7).Value Données.Cells(i, 8).Formula = "=QDATA(" & text & " ,NOW,,,,0,0,0,1,,,,,,,,,0,,0)"
Next i
' Copie de la valeur du compteur moteur en s 'PROBLEME ICI Données.Range("H11:H" & Derlig).Copy Données.Cells(11, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
' Récupération de la valeur du compteur moteur en hr
' Comparaison valeur compteur moteur par rapport aux seuils pour affichage icon set
For i = 11 To Derlig If (Données.Cells(i, 5).Value < Worksheets("PARAMETRAGE").Cells(i, 9).Value) Then Données.Cells(i, 4).Value = 0 End If If (Données.Cells(i, 5).Value >= Worksheets("PARAMETRAGE").Cells(i, 9).Value And Données.Cells(i, 4).Value < Worksheets("PARAMETRAGE").Cells(i, 6).Value) Then Données.Cells(i, 4).Value = 1 End If If (Données.Cells(i, 5).Value >= Worksheets("PARAMETRAGE").Cells(i, 6).Value And Données.Cells(i, 4).Value < Worksheets("PARAMETRAGE").Cells(i, 7).Value) Then Données.Cells(i, 4).Value = 2 End If If (Données.Cells(i, 5).Value >= Worksheets("PARAMETRAGE").Cells(i, 7).Value And Données.Cells(i, 4).Value < Worksheets("PARAMETRAGE").Cells(i, 8).Value) Then Données.Cells(i, 4).Value = 3 End If If (Données.Cells(i, 5).Value >= Worksheets("PARAMETRAGE").Cells(i, 8).Value) Then Données.Cells(i, 4).Value = 4 End If Next i
' Copie de la valeur ONTM et icon set de "DATA" vers "PARAMETRAGE"
For i = 11 To Derlig Données.Range("B11:E" & Derlig).Copy Worksheets("PARAMETRAGE").Cells(11, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next i
j = Derlig + 1 On Error Resume Next Worksheets("PARAMETRAGE").Range("B" & j & ":I65536").SpecialCells(xlCellTypeConstants, 23).ClearContents