Mon code ne fonctionne pas

bonjour à tous,

quelqu'un peut m'aider à résoudre le problème que j'ai sur mon code

Cordialement

17recap.xlsm (131.80 Ko)

Bonjour,

poste don code entre balises directement sur le forum , et dis nous ce qu'est censé faire ton code et qui ne se fait pas ...

BoixosNois, pierre.jy, le forum,

Dans ta macro, section sous "For j = 8 To N", tu mets des points devant les cells et les range; mais tu es en dehors d'un With....

With xxxx

.Cells(xxxx

.Range(xxxx

End With

Cells(xxx

Range(xxx

LaCéline

bonsoir laceline, le forum

aidez moi s'il vous plait à rectifier le code si c'est possible

BoixosNois, pierre.jy, le forum,

J'ai corrigé 4 lignes ... Pour les identifiées, j'ai ajouté à la fin ' Corrigé ICI

Private Sub Worksheet_Activate()
Dim Données As Collection, TS(), EOTP As SsGroup, LS As Long, Détail, Plg As Range

Rem. —— Première Partie
Set Données = GroupOrg(PlgUti(Feuil01.[A8]), 12)
ReDim TS(1 To Données.Count, 1 To 2)
For Each EOTP In Données
   LS = LS + 1
   TS(LS, 1) = EOTP.Id
   For Each Détail In EOTP.Contenu
      TS(LS, 2) = TS(LS, 2) + Détail(10)
      Next Détail, EOTP
ValPlgAju(Me.[RécapMatos]) = TS
Me.Rows(8).Resize(5000).RowHeight = Me.Rows(7).RowHeight
Me.[RécapMatos].Cells(LS + 1, 2).Resize(, 1).FormulaR1C1 = "=SUM(R7C:R[-1]C)"

With LignesAjustées(Feuil03.Rows(8), LS)
   .Columns("L").Value = WorksheetFunction.Index(TS, 0, 1)
   .Columns("H").Value = WorksheetFunction.Index(TS, 0, 2)
   .Columns("A").FormulaR1C1 = "=10*ROW()-70"
   .Columns("A").Value = .Columns("A").Value
   End With

LS = 0

Dim j As Long
    Dim N As Long
    Dim dSommeBrute As Double 'somme des montants non arrondis
    Dim dSommeArrondis As Double 'somme des montants arrondis

For j = 8 To N
            'colonne H : arrondi
            Cells(j, 8) = Round(Cells(N + 4, 12).Value * Cells(j, 15).Value, 2) ' Correction ICI
            'somme des montants non arrondis
            dSommeBrute = dSommeBrute + Cells(N + 4, 12).Value * Cells(j, 15).Value ' Correction ICI
            'somme des montants arrondis
            dSommeArrondis = dSommeArrondis + Round(Cells(N + 4, 12).Value * Cells(j, 15).Value, 2) ' Correction ICI

        Next j

        'si écart : réajuste le premier montant (H6)
        dSommeArrondis = Round(dSommeArrondis, 2)
        dSommeBrute = Round(dSommeBrute, 2)
        If dSommeArrondis <> dSommeBrute Then
            'ré-arrondit sinon écart de 10E-10
            Range("H6").Value = Round(Range("H6").Value + dSommeBrute - dSommeArrondis, 2) ' Correction ICI
        End If

suite:

'Supprimer ligne si colonnes H ou D vides
Dim oda, f, ln, nCol

On Error Resume Next
Application.ScreenUpdating = False

oda = Array(Sheets("ODA MATOS"))
For Each f In oda
    If f.Name = "ODA MATOS" Then
        nCol = "H"
    Else
        nCol = "D"
    End If
    For ln = f.Range(nCol & Rows.Count).End(xlUp).Row - 4 To 7 Step -1

        If f.Range(nCol & ln) = 0 Or IsEmpty(f.Range(nCol & ln)) Then
            f.Rows(ln).Delete shift:=xlUp
        End If
    Next ln
Next f

End Sub

LaCéline

Bonjour laceline, le forum

le code ne fonctionne toujours pas même après votre rectification

Cordialement

BoixosNois, le forum,

Le code donne-t-il encore des erreurs?

Si non, quels sont les traitements dont tu n'es pas satisfait.

Peux-tu les décrires ?

LaCéline

Re,

le code doit faire ceci :

***dispatcher les montants que j'ai dans la feuille 1 vers la feuille 3 en passant par la feuille 2 pour faire l'actualisation,

ce que je veux c'est arrondir les chiffres de la colonne H de la feuille ODA matos à 2 chiffres après la virgule puis comparer le total de H39 de la feuille (ODA Matos) à la somme de J8:J50 feuille (Matos) (toute en sachant que H39 et J8:J50 sont variables),

puis la difference détecté entre les deux sommes il faut l'ajouter ou la diminuer de H8 de la feuille (ODA Matos) pour que ces deux taotaux soient les mêmes

BoixosNois, le forum,

Je ne suis pas sûr d'avoir tout compris.

J'ai modifié la fin de Worksheet_Activate de la feuille "RECAP"

LaCéline

8boix-recap.xlsm (118.08 Ko)

Re,

merci pour votre réponse mais comme vous pouvez constater H8 de la 3ème feuille n'est pas arrondie à deux chiffres

Cordialement

BoixosNois, le forum,

H8 de la feuille "ODA MATOS" n'est pas arrondi à 2 chiffres après le séparateur décimal ...

... puis la difference détecté entre les deux sommes il faut l'ajouter ou la diminuer de H8 de la feuille (ODA Matos) pour que ces deux taotaux soient les mêmes ...

C'est un peu normal, car tu demandes d'ajouter à H8 la différence entre la somme de "ODA MATOS" range("H8:H36") et la somme de "MATOS" range("J8:J50"). La différence est de 0,008 si ma mémoire est bonne après que la plage de "ODA MATOS" range("H8:H36") ait été arrondie à 2 décimales.

Ou bien, je n'ai rien compris à ton besoin.

LaCéline

Rechercher des sujets similaires à "mon code fonctionne pas"