IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copie colonne sous conditions en inputform [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    J'ai une macro qui ne marche pas (ok niveau syntax) car je suppose que la methode ne marche pas avec deux conditions.
    J'ai un tableau excel avec des criteres. Quand le mois et l'annee d'une ligne sont superieurs ou egales au mois et a l'année renseignés par l'utilisateur je voudrais copier les lignes concernées a la suite d'un tableau dans un autre onglet. Mais voila cela ne marche pas.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Sub Macro2()
     
        Dim mois As Single
        Dim annee As Single
        Dim LastLig As Long
        Dim LastLig2 As Long
     
       mois = Application.InputBox("A partir de quel mois voulez vous mettre à jour les transactions", "Saisie", Type:=1)
       annee = Application.InputBox("A partir de quelle annee voulez vous mettre à jour les transactions", "Saisie", Type:=1)
          LastLig = Worksheets("2011 livraison").Cells(Worksheets("2011 livraison").Rows.Count, "A").End(xlUp).Row
       Application.ScreenUpdating = False
    With Worksheets("Base")                                            'Adapte le nom de la feuille source
        .AutoFilterMode = False
        LastLig2 = .Cells(.Rows.Count, "C").End(xlUp).Row
        .Range("A1:BA" & LastLig).AutoFilter field:=1, Criteria1:=">=" & mois
        .Range("B1:BA" & LastLig).AutoFilter field:=1, Criteria1:=">=" & annee
        .Range("C1:BA" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("2011 livraison").Range("A" & LastLig).PasteSpecial Paste:=xlValues 'Adapte le nom de la feuille Destination
        Application.CutCopyMode = False
        .AutoFilterMode = False
    End With
     
    End Sub
    j'ai tenté une autre methode en supposant que cela etait du au fait que j'avais deux conditions.
    Voila le code, le probleme est que la macro ne s arrete jamais....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
      Sub Macro2()
     
        Dim mois As Single
        Dim annee As Single
        Dim icol As Integer 'Compteur de ligne
        Dim LastLig As Long
        Dim LastLig2 As Long
        Dim sh As Worksheet
        Dim sh2 As Worksheet
       mois = Application.InputBox("A partir de quel mois voulez vous mettre à jour les transactions", "Saisie", Type:=1)
       annee = Application.InputBox("A partir de quelle annee voulez vous mettre à jour les transactions", "Saisie", Type:=1)
          LastLig = Worksheets("2011 livraison").Cells(Worksheets("2011 livraison").Rows.Count, "A").End(xlUp).Row
       Set sh = Worksheets("Base")
       Set sh2 = Worksheets("2011 Livraison")
       icol = 1
       While sh.Cells(icol, 11) <> ""
       If sh.Cells(icol, 2) > annee Or sh.Cells(icol, 1) >= mois And sh.Cells(icol, 2) = annee Then
       'Fait un boucle horizontale pour copier et coller 
                For i = 3 To 53
                    sh2.Cells(LastLig + icol + 1, i) = sh.Cells(icol, i - 2) 
                Next i
            Else
                icol = icol + 1
     
            End If
        Wend
     
    End Sub

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    j'ai trouvé mon erreur.
    Le icol = icol + 1 doit etre apres le End if pas avant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Bloquer une colonne sous condition
    Par louzz dans le forum Excel
    Réponses: 11
    Dernier message: 07/09/2011, 17h22
  2. [XL-2007] copie colle sous condition et si case remplie en dessous
    Par mamour007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/03/2010, 10h37
  3. VB Excel copié/collé sous conditions entre 2 classeurs
    Par Popogrigri dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/01/2010, 11h27
  4. [E-07] boucle copy paste sous condition sur ligne particuliere
    Par dec3003 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2009, 18h36
  5. selection de cellules d'une colonne sous condition
    Par Mounamidou dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/10/2007, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo