VBA problème de programation

Résolu
Bonjour,

Voila je dispose d'un tableaux de plusieur ligne est au bout de chaque ligne j'ai une case a cocher faisant reference a la cellule de gauche case en Q1 vrai faux en R1.
Je voudrait une macro qui m'ouvre une nouvel feuille et me copie toute les lignes avec une case cocher dans cette feuille dans l'ordre de la feuille de départ.

J'ai tester plusieurs choses et la j'avoue je sèche ^^

Merci d'avance
Configuration: Windows XP / Internet Explorer 6.0

4 réponses

  1. Je n'ai pas excel 2007
    1. @pijakuhttp://www.cijoint.fr/cjlink.php?file=cj201003/cijQWbB9ME.xls

      voila encore merci pour ton implication
    2. Modérateur
      Euh........ Comment dire!! Je n'y comprends rien vraiment car chez moi cela fonctionne. As tu pensé par hasard à cocher quelques "cases à cocher" avant de lancer la macro?
    3. @pijakuHeuuu ... bon oki je sort bon ba oui en effet c'est bon j'ai juste quelque petit réglage je croit que la macro n'aime pas les cellules fusionées comme R4 ou R12 il me prend qu'une ligne mais bon c'est pas bien méchant
      En tout cas merci bcp pour ton aide ^^
      Sa me rend un grand service ^^
    4. Modérateur
      de rien.
      @+
  2. J'ai résolue le probleme il y avait un espace qui ce balader dans le nom de ma feuille. donc j'ai plus de Bug mais quand je fait la manip il m'ouvre bien une nouvelle feuille mais elle est vide .
  3. J'ai essayer mais malheuresement cela ne fonctionne pas.

    jvais essayer d'être plus précis. Le tableau va de A6 à O61 Les cas a cocher de Q6 à Q61 les formats de contrôle des cases à cocher de R6 à R61
    La feuille avec ce tableau ce nomme "Feuille de Saisie"

    Voilà si sa peut aider
    1. Modérateur
      Voici le code corrigé et adapté à ta situation

      Sub recap_vrai()
      Dim derniereligne As Integer, i As Integer, derlig As Integer
      Sheets.Add
      With Sheets("Feuille de saisie")
      derniereligne = .Range("R65536").End(xlUp).Row
      For i = 6 To 61
      If .Range("R" & i) = True Then
      derlig = Range("R65536").End(xlUp).Offset(1, 0).Row
      .Range(.Cells(i, 1), .Cells(i, 18)).Copy Range("A" & derlig)
      End If
      Next
      End With
      End Sub
    2. @pijakuIl me met le méssage d'erreur suivant :

      Erreur d'execution '9' L'indice n'apartient pas a la selection et quand je fait débogage il me surligne la ligne suivante "With Sheets("Feuille de saisie")"

      Voilà et merci encore pour ton aide ^^
    3. Modérateur
      Et bien mets une majuscule à "saisie" peut être...
  4. Modérateur
    Bonjour,
    Essaie quelque chose comme cela :
    Sub recap_vrai()
    Dim derniereligne As Integer, i As Integer
    Sheets.Add
    With Sheets("Nom_de_ta_feuille_contenant_les_données")
    derniereligne = .Range("A65536").End(xlUp).Row
    For i = 2 To derniereligne
    If .Cells(i, 18).Value = "VRAI" Then
    .Rows(i).Copy Range("A65536").End(xlUp).Offset(1, 0).Row
    End If
    Next
    End With
    End Sub