Insertion auto de ligne en gardant la formule

Résolu
estes -  
 estes -
Bonjour,
Bonjour,
Je me permets de faire appel à votre aide, pour un petit travail sur escel.
J'ai un tableau que je remplis, avec principalement les données suivantes: pays date de début date de fin, délais.
Plusieurs problèmes se posent à moi:

-quand j'insère une ligne grâce à une macro, je voudrais que la nouvelle ligne contienne toujours la fonction qui y étais auparavant. il s'agit d'une fonction un peu complexe

-je voudrais que ma liste des pays soit extraite vers une nouvelle feuille en ne conservant que les valeurs uniques. je voudrais également que soit comptabilisé le nombre de fois ou une même valeur revient.

-enfin, et c'est ce qui me pose le plus de problème je voudrais une fonction qui agisse de la façon suivante:
pour la valeur egypte, chercher toutes les valeurs egypte dans telle colonne et à chaque fois qu'elle est trouvée, prendre en compte la valeur "délais", et ce afin de trouver un délai moyen

Dans la mesure du possible je ne veux pas de filtre et préférerai des macros.

Voici mon programme
http://cjoint.com/data/ditKqBKBPn.htm

merci par avance de toute aide, je suis désolé de poser des questions qui doivent sans doute apparaitre evidente à la plupart d'entre vous..
Configuration: Windows XP / Internet Explorer 6.0

11 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Juste au passage pour insérer la nouvelle ligne, essayer cette procédure :
    Sub InsererLigneEtFonction()
        Rows("10:10").Copy
        Rows("8:8").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False
        Rows("8:9").Insert Shift:=xlDown
        Application.CutCopyMode = False
        Range("B10:L10").ClearContents
        Range("A1").Select
    End Sub
    1
  2. estes
     
    merci ça marche super!
    quelqu'un pour mes problèmes de stats?
    1
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Concernant ceci :
    pour la valeur egypte, chercher toutes les valeurs egypte dans telle colonne et à chaque fois qu'elle est trouvée, prendre en compte la valeur "délais", et ce afin de trouver un délai moyen
    La fonction SI() devrait faire l’affaire comme suit :
    Dans cellule [Q10] : =SI(F10="EGYPTE";K10-C10;"")
    et tirer vers le bas selon le nombre des lignes.
    1
  4. estes
     
    voici l ligne de code qu j'ai faite pour extraire mes données d'une feuille vers l'utre sans doublon.
    Ca ne fonctionne pas...
    A l'aide!

    Sub Test()
    Application.ScreenUpdating = False
    With Sheets("Sheet2")
    .Cells.ClearContents
    .Range("A1") = "All"
    For Each X In Sheets("Sheet1").Range("F10:" & Sheets("Sheet1").Range("IV2").End(xlToLeft).Address)
    Sheets("Sheet1").Range(X, Sheets("Sheet1").Cells(65536, X.Column).End(xlUp)).Copy
    Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Next
    .Select
    .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("B1"), Unique:=True
    .Columns(1).Delete
    .Range("A1").Select
    End With
    Application.ScreenUpdating = True
    End Sub
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ESTES
     
    J'avais pensé à la fonction SI mais je voudrais plutot passer par une macro, qui me ferais le calcul pour l'ensemble des valeurs et non pas une fonction qui ferait du case par case.
    0
  7. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Désolé que cela ne convienne pas.
    0
  8. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Pouvez-vous préciser quelles données extrairent?
    Quelle est le message d'erreur ?
    0
    1. sriviere Messages postés 879 Statut Membre 413
       
      Je ne cesse d'être admirative quant à votre patience et votre disponibilité.
      0
      1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478 > sriviere Messages postés 879 Statut Membre
         
        Bonjour,
        C'est très gentil, merci.
        Au passage un petit bonjour ne fait de mal à personne ....
        0
  9. estes
     
    les données à extraire sont une liste de pays, qui commencent en F10.
    je veux les extraires vers une autre page sans doublon.
    le message d'erreur parle d'automation.
    0
  10. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Essayer cette procédure (à insérer dans le module):
    Sub ExtraitSansDoublonTrier()
    Dim NL As Long
        Sheets("Sheet2").Activate
        Cells.ClearContents
        NL = Sheets("Sheet1").Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
        Sheets("Sheet1").Range("F5:F" & NL).AdvancedFilter Action:=xlFilterCopy, _
            CopyToRange:=Range("A1"), Unique:=True
        Columns("A:A").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlYes
        Range("aa1").Select
    End Sub--


    Salutations.
    Jean-Pierre
    0
  11. estes
     
    Bonjour à tous,
    merci pour la procédure, elle marche très bien, je sais pas comment j'aurai pu faire sans vous!
    0