Ajout sur une macro

bonjour

j ai une macro qui me remplit les case vides de mon tableau grace a une macro

mais ce tableau varie en fonction de date

mon tableau ce remplit grace a un autre onglet

et lors la premiere fois que je fais la macro elle me rentre des chiffres dans les cellules vides exemple en P7 cette valeur reste tout le temps

je voudrais que au debut de ma macro les ligne d6:29 et h6:29 et l6:29 et p6!29 reprenne leurs formules de recherche

exemple pour d6 =SI(ET(A6>=$C$2;A6<=$F$2);INDEX('B-Formulation'!P:P;EQUIV(A6;'B-Formulation'!A:A;0));"")

-- 27 Mar 2011, 11:48 --

Bonjour,

Comment savoir !

tu devrais joindre la macro complète ou mieux, le fichier

Amicalement

Claude

a te lire pour des question

-- 27 Mar 2011, 12:46 --

mon classeur n a pas la macro celui qui a la macro fait pese 1.1mo donc ????

10classeur1.xlsx (57.54 Ko)

re,

Tu peux copier la macro ici

en fait, tu voudrais réécrire les formules ?

Claude

voila la macro

Option Explicit

Sub moyennetit()

Dim i As Integer, j As Integer, a As Single, b As Single

Application.ScreenUpdating = False

Range("S1:X200").ClearContents

Range("T6").Select
ActiveCell.Offset(-1, 0) = "Colonne"
ActiveCell.Offset(-1, 1) = "Ligne"
ActiveCell.Offset(-1, 2) = "Valeur"
ActiveCell.Offset(-1, 3) = "Moyenne"

For i = 1 To 25
    ActiveCell = 4
    ActiveCell.Offset(1, 0) = 8
    ActiveCell.Offset(2, 0) = 12
    ActiveCell.Offset(3, 0) = 16
    ActiveCell.Offset(0, 1) = i + 5
    ActiveCell.Offset(1, 1) = i + 5
    ActiveCell.Offset(2, 1) = i + 5
    ActiveCell.Offset(3, 1) = i + 5
    ActiveCell.Offset(0, 2).FormulaR1C1 = "=INDEX(R1C1:R30C17,RC[-1],RC[-2])"
    ActiveCell.Offset(1, 2).FormulaR1C1 = "=INDEX(R1C1:R30C17,RC[-1],RC[-2])"
    ActiveCell.Offset(2, 2).FormulaR1C1 = "=INDEX(R1C1:R30C17,RC[-1],RC[-2])"
    ActiveCell.Offset(3, 2).FormulaR1C1 = "=INDEX(R1C1:R30C17,RC[-1],RC[-2])"
    ActiveCell.Offset(4, 0).Select
Next

    Range("V6:V105").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

For i = 7 To 105 ' toutes les lignes de la colonne V, premier passage
    Cells(i, 22).Select
        If ActiveCell = "" Then
            ActiveCell = 0
        End If
Next

    Range("X7").FormulaR1C1 = "=SUM(RC[-2]:R105C22)"
    Range("X7").AutoFill Destination:=Range("X7:X105"), Type:=xlFillDefault

For i = 7 To 105 ' toutes les lignes de la colonne V, deuxième passage
    Cells(i, 22).Select

        If ActiveCell.Offset(0, 2) = 0 Then
            GoTo Etiquette
        End If

        If ActiveCell = 0 Then
            Do While ActiveCell <= 0
                ActiveCell.Offset(-1, 0).Select
            Loop
            a = ActiveCell.Value

            Cells(i, 22).Select
            Do While ActiveCell <= 0 Or ActiveCell = ""
                ActiveCell.Offset(1, 0).Select
            Loop
            b = ActiveCell.Value

            Cells(i, 22).Offset(0, 1) = (a + b) / 2
            Cells(Cells(i, 22).Offset(0, -1), Cells(i, 22).Offset(0, -2)) = Cells(i, 22).Offset(0, 1)
       End If
Next

Etiquette:

Range("A1").Select

Range("S1:X200").ClearContents

End Sub

Sub Macro4()
  Range("D7,H9,P6,P8:P11,L15:L16,P20:P21,D16").ClearContents
    Range("A1").Select
End Sub

et je voudrais pour D6

d6 =SI(ET(A6>=$C$2;A6<=$F$2);INDEX('B-Formulation'!P:P;EQUIV(A6;'B-Formulation'!A:A;0));"")

et appliquer cette formule à D 7

d6 =SI(ET(A7>=$C$2;A7<=$F$2);INDEX('B-Formulation'!P:P;EQUIV(A7;'B-Formulation'!A:A;0));"")

ceci jusqu a D29

avec cette base je ferais de meme pour E6 H6 I6 L6 M6 P6et Q6

re,

Désolé, je ne comprends pas la question

je passe la main

Claude

ben, je recommence

je voudrais une macro pour remettre mon tableau pret a recevoir des données d un autre onglet

car j ai une macro qui me remplace mes formules par des chiffre

et donc lors de la reutilisation j ai plus mes formules

et je voudrais pour D6

d6 =SI(ET(A6>=$C$2;A6<=$F$2);INDEX('B-Formulation'!P:P;EQUIV(A6;'B-Formulation'!A:A;0));"")

et appliquer cette formule à D 7

d7 =SI(ET(A7>=$C$2;A7<=$F$2);INDEX('B-Formulation'!P:P;EQUIV(A7;'B-Formulation'!A:A;0));"")

ceci jusqu a D29

avec cette base je ferais de meme pour E6 H6 I6 L6 M6 P6et Q6

Bonjour

J'ai essayé de suivre, mais comme j'ai des #N/A dans les colonnes, pas facile à suivre

Tu refais un classeur avec des données exploitables dans les colonnes D,H,L et P

A quoi sert ta macro qui travaille dans les colonnes T à X ?

A suivre

la macro faire une moyenne bizard

des données collecter en d, h, l, p

la macro fait la moyenne de d6 avec h6

ou d6 avec l6

ou d6 avec p6

ainsi de suite et par exemple pour la moyenne de d6 avec p6 elle me met le resultat dans h6 et l 6

comme tu le vois dans le nouveau classeur apres la macro p6 est devenu un chiffre

et donc lors du prochain changement de date mes valeur en d6,h6 ,l 6 vont changer NORMAL mais pas en p 6

je parle de la ligne 6 mais c est pareil pour toute les lignes

7classeur122.xlsx (67.04 Ko)

re,

Pour écrire les formules

Sub essai()
    Application.DisplayAlerts = False
    Range("d6:d29") = "=IF(AND(a6>=$c$2,a6<=$f$2),INDEX('B-Formulation'!p:p,MATCH(a6,'B-Formulation'!a:a,0)),"""")"
    Range("h6:h29") = "=IF(AND(a6>=$c$2,a6<=$f$2),INDEX('B-Formulation'!u:u,MATCH(a6,'B-Formulation'!a:a,0)),"""")"
    Range("L6:L29") = "=IF(AND(a6>=$c$2,a6<=$f$2),INDEX('B-Formulation'!z:z,MATCH(a6,'B-Formulation'!a:a,0)),"""")"
    Range("p6:p29") = "=IF(AND(a6>=$c$2,a6<=$f$2),INDEX('B-Formulation'!ae:ae,MATCH(a6,'B-Formulation'!a:a,0)),"""")"
End Sub

Je te laisse faire pour les autres colonnes (dans le même style)

Amicalement

Claude

et ca je peux le mettre a debut de ma macro ?

-- 27 Mar 2011, 15:54 --

ok ca marche

mais aurais tu une idées pour que ma macro de depart n affiche pas de resultat si je n est pas de valeur en par exemple O6

Salut Phalco,

Il me semble que je t'ai répondu sur un autre fil, non ?

Cordialement.

Rechercher des sujets similaires à "ajout macro"