Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] Problème avec .Autofill

Enerjp

XLDnaute Junior
Bonjour tout le monde,

Alors voila, je fais une macro pour accélérer la rédaction des factures. Elle va insérer des lignes suivant le nombre de produits à facturer.

Dans un premier temps elle boucle pour trouver la première ligne du tableau avec les en-têtes (ligne variable) et fixe la valeur dans une variable "ligne"%.
La variable "NbProduit"% (Nombre de produit à facturer) représente le nombre de lignes à rajouter au tableau (valeur entré par l'utilisateur).

Le problème est que les lignes du tableaux contiennent des listebox Excel (validation de données). J'ai donc choisi de boucler pour insérer n nombre de ligne puis d'utiliser .Autofill pour tirer les lignes. ça marche avec l'enregistreur de macro mais plus quand je change les variables.

Code:
    With Sheets("facture")
        
Select Case NbProduit
Case 0: MsgBox "Entrer un nombre de produit à facturer": GoTo fin
Case 1: GoTo rien       'la premiere ligne est déjà présente
Case 2 To 15: GoTo insertionPage1
Case Else: MsgBox "T'es un sacré vendeur toi !!"
End Select

insertionPage1:
    With .Range("B" & i + ligne + 2 & ":L" & i + ligne + 2) '.Select    'ligne +2 car il doit insérer sous la première ligne
        
        For i = 1 To NbProduit - 1
            
            .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                
        Next
            
    End With
        
    Set SourceRange = .Range("B" & ligne + 1 & ":L" & ligne + 1)
    Set fillRange = .Range("B" & ligne + NbProduit & ":L" & ligne + NbProduit)

    SourceRange.AutoFill Destination:=fillRange

    End With

Et il me renvoie un message d'erreur avec l'autofill. Ces bonnes vielles aides excel me disent que la destination doit contenir la plage de départ, or : .Range("B" & ligne + NbProduit & ":L" & ligne + NbProduit) ne la contient pas...
Ça doit être un truc con mais je bloque! Merci d'avance
 
Dernière édition:

Enerjp

XLDnaute Junior
Re : Problème avec .Autofill

Voila, comme je le pensais c'est moi le con.

Code:
    Set SourceRange = .Range("B" & ligne + 1 & ":L" & ligne + 1)
    Set fillRange = .Range("B" & ligne & ":L" & ligne + NbProduit)

    SourceRange.AutoFill Destination:=fillRange

au lieu de :

Code:
    Set SourceRange = .Range("B" & ligne + 1 & ":L" & ligne + 1)
    Set fillRange = .Range("B" & ligne + NbProduit & ":L" & ligne + NbProduit)

    SourceRange.AutoFill Destination:=fillRange

Pardon pour le dérangement ^^. Bonne journée
 

Discussions similaires

Réponses
1
Affichages
110
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…