La méthode Autofill de la class Range a échoué

wwwhttp

XLDnaute Nouveau
Bonjour,
j'ai une erreur récurrente dans une macro, macro qui tournait bien jusque maintenant, je n'ai rien touché et paf, ça me plante à chaque fois maintenant
je vais avoir du mal à mettre un fichier d'exemple car les données sont nominatives et confidentielles mais le principe pour cette feuille est que j'applique simplement une condition SI et je la tire jusqu'en bas, et c'est au moment de la tirer que ça plante (dernière ligne)

Code:
Sheets("BO").Activate
    numlign = Sheets("BO").Range("A65536").End(xlUp).Row
    
    For Each f In Sheets(Array("BO"))
    
    If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
    Rows("1:1").Insert Shift:=xlDown
    Range("A1").FormulaR1C1 = "champ1"
    Range("B1").FormulaR1C1 = "champ2"
    Range("C1").FormulaR1C1 = "champ3"
    Range("D1").FormulaR1C1 = "champ4"
    Range("E1").FormulaR1C1 = "champ5"
    Range("F1").FormulaR1C1 = "champ6"
    Range("G1").FormulaR1C1 = "champ7"
    Else
        
    Range("E1").FormulaR1C1 = _
        "=IF(RC[-1]=""présent BO"",""OK"",""NOK"")"
    With Worksheets("BO")
    .Range("E1").Copy
    End With
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=Range("E1:E" & numlign)
j'ai cherché et pas trouvé ce qui coince
merci de votre aide
 

vgendron

XLDnaute Barbatruc
Re : La méthode Autofill de la class Range a échoué

Bonjour,

il va nous manquer quelques éléments pour comprendre.
est ce que tu peux juste poster un fichier exemple avec 2 -3 lignes de data bidons: histoire de voir la structure de ton fichier

dans la macro que tu as posté; il manque un next f ainsi qu'un End if

je les ai rajouté à la main, et quand je lance la macro une première fois avec une feuille BO vide, il me colle les noms de champ dans la première ligne
ensuite. deuxième lancement. il veut me mettre une formule. mais en E1: donc. il écrase le nom du champ5:
à mon avis. ca doit pas etre ce que tu cherches..
 

Staple1600

XLDnaute Barbatruc
Re : La méthode Autofill de la class Range a échoué

Bonsoir à tous


Personnellment j'aurai pu simplifier la macro comme ceci
Code:
Sub a()
Dim numlign&
numlign = Sheets("BO").Cells(Rows.Count, 1).End(xlUp).Row
If numlign > 1 Then
Range("E2:E" & numlign) = "=IF(RC[-1]=""présent BO"",""OK"",""NOK"")"
Else
Range("A1:G1") = Array("champ1", "champ2", "champ3", "champ4", "champ5", "champ6", "champ7")
End If
End Sub

Mais sans fichier exemple pour tester...

PS: Il est très facile de créer un fichier exemple, il suffit de mettre des données fictives en lieu et des données confidentielles
(Exemple: NOM1 PRENOM1 ADRESSE1 CP1 VILLE1 puis recopie vers le bas etc....)
 

wwwhttp

XLDnaute Nouveau
Re : La méthode Autofill de la class Range a échoué

Bonjour à vous deux,

Bonjour,
il va nous manquer quelques éléments pour comprendre.
est ce que tu peux juste poster un fichier exemple avec 2 -3 lignes de data bidons: histoire de voir la structure de ton fichier
désolé de ne pas avoir pris le temps de créer un fichier de test, j'ai lancé une bouteille à la mer en ne mettant qu'une feuille blanche dedans

dans la macro que tu as posté; il manque un next f ainsi qu'un End if
en fait ce n'est qu'une partie de ma macro qui fait environ 3000 lignes et le next et end if sont bien présents mais un peu plus loin

je les ai rajouté à la main, et quand je lance la macro une première fois avec une feuille BO vide, il me colle les noms de champ dans la première ligne
ensuite. deuxième lancement. il veut me mettre une formule. mais en E1: donc. il écrase le nom du champ5:
à mon avis. ca doit pas etre ce que tu cherches..
effectivement, ce n'est pas le but !


Bonsoir à tous
Personnellment j'aurai pu simplifier la macro comme ceci
Code:
Sub a()
Dim numlign&
numlign = Sheets("BO").Cells(Rows.Count, 1).End(xlUp).Row
If numlign > 1 Then
Range("E2:E" & numlign) = "=IF(RC[-1]=""présent BO"",""OK"",""NOK"")"
Else
Range("A1:G1") = Array("champ1", "champ2", "champ3", "champ4", "champ5", "champ6", "champ7")
End If
End Sub
effectivement c'est beaucoup plus propre !


Mais sans fichier exemple pour tester...
PS: Il est très facile de créer un fichier exemple, il suffit de mettre des données fictives en lieu et des données confidentielles
(Exemple: NOM1 PRENOM1 ADRESSE1 CP1 VILLE1 puis recopie vers le bas etc....)
mea culpa


mais comme ton code tourne à l'envers du mien cad que si non vide il bosse, je l'ai testé et il tourne nickel, plus d'erreur 1004 !
ça m'a aussi permis de diminuer le nombre de lignes
donc un grand merci à vous !
 

Discussions similaires

Statistiques des forums

Discussions
312 465
Messages
2 088 656
Membres
103 909
dernier inscrit
chrispondu84