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

[Résolu] Problème avec .Autofill

  • Initiateur de la discussion Initiateur de la discussion Enerjp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
332
Réponses
2
Affichages
371
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
4
Affichages
439
Réponses
15
Affichages
662
Réponses
7
Affichages
704
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…