VBA (error#1004) : boucle sur copie-colle (ie : DoWhile...+ autofill ou .formula)

  • Initiateur de la discussion Initiateur de la discussion zebanx
  • 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 !

zebanx

XLDnaute Accro
Bonjour,

Il y a un problème de code (erreur 1004) dans deux macros qui servent à dupliquer une formule sur un rows.count avec un démarrage à une ligne i non figée.

En cherchant sur le site, il y aurait deux formules de codes qui pourraient convenir :

- autofill avec le code suivant

Sub DWL_autofill()
' Utilisation .AUTOFILL
Dim lignedeb As Long
Dim i As Integer
If IsEmpty(Range("B1")) = True Then
i = lignedeb
Else
i = 1
End If
Do While Cells(i, 2) <> ""
'erreur 1004
Range("C" & i).Select
Selection.AutoFill Destination:=Range("C" & i & "C" & Range("B" & Rows.Count).End(xlUp).Row)
i = i + 1
Loop
Range("A1").Select
End Sub

- .formula, qui parait plus rapide, avec le code suivant
Sub DWL_formula()
' Utilisation .FORMULA
Dim lignedeb As Long
Dim i As Integer
If IsEmpty(Range("B1")) = True Then
i = lignedeb
Else
i = 1
End If
Range("C" & i & "C" & Cells(Rows.Count, 4).End(xlUp).Row).Formula1 = "=+RC[-1]+100"
'erreur 1004
Selection.Columns.AutoFit
Cells("C1").Select
End Sub

Pourriez-vous s'il vous plait corriger ces deux codes qui me permettraient aussi de continuer à apprendre sur les boucles simples ?
Ci-joint le fichier, toutes les macros sont dans le module 1.

Vous en remerciant par avance, bonne journée
thierry
 

Pièces jointes

Bonjour Thierry

Pas besoin de boucle.

VB:
Option Explicit

Sub test()
Dim derlig As Long

    Application.ScreenUpdating = False

    With Feuil1
        derlig = .Range("a" & Rows.Count).End(xlUp).Row
        .Range("c2").Formula1 = "=+RC[-1]+100"
        .Range("c2").AutoFill .Range("c2:c" & derlig)
        With .Range("c2:c" & derlig)
            .Value = .Value
        End With
    End With
End Sub
 
Dernière édition:
Bonjour Pierre-Jean et bonjour Lone-Wolf

Merci pour votre célérité et les codes proposés

@Lone-wolf
Merci pour l'explication et sur les deux réponses, effectivement la boucle a sauté (tant mieux!!)
Il y a cependant une erreur #438 à l 'exécution de la macro.
--> J'ai remis les informations pour que la cellule C2 soit activée avec la formule à recopier et modifié derligne avec la colonne B qui contient le nombre exact de ligne à incrémenter mais ça n'a pas suffit...🙁

@Pierre-Jean
Les deux codes fonctionnent bien. Merci de les avoir corrigés sur VBE et d'avoir laissé les anciennes lignes à supprimer, c'est plus facile pour comprendre d'où viennent les erreurs. 😎

Bonne journée à tous les deux
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
179
Réponses
4
Affichages
461
Réponses
3
Affichages
673
Réponses
2
Affichages
511
Retour