Problème avec macro trouver la dernière ligne vide

Résolu/Fermé
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 13 avril 2015 à 15:46
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 17 avril 2015 à 16:40
Bonjour à tous,

J'ai une macro pour insérer des valeurs dans mon tableau dans la colonne E (cellule E5) à partir de 2 InputBox qui servent à déterminer la première et dernière valeur.

Tous marchais très bien lorsque j'avais déjà des valeurs dans le tableau, mais quand il est vide, ça ne fonctionne pas. J'ai placé un espion pour connaître le résultats certaines valeurs de la macro et pour le résultat de dlig (dernière ligne) et le résultat est 1048577 et j'ai une erreur d'exécution 1004, "la méthode range de l'obget_global à échoué".

Voici mon code:

Sub ajoutSondage()

Dim ligne As Long
Dim nbrlig As Integer
Dim incr As Integer
Dim dlig As Long, premier As Long, dernier As Long

Application.ScreenUpdating = False

dlig = Range("E4").End(xlDown).Row + 1
premier = Application.InputBox("Numéro du premier sondage?", "DÉBUT", Type:=1)
    If premier = 0 Then
    MsgBox "Abandon utilisateur", vbExclamation
    Exit Sub
    End If
dernier = Application.InputBox("Numéro du dernier sondage?", "FIN", Type:=1)
    If dernier = 0 Then
    MsgBox "Abandon utilisateur", vbExclamation
    Exit Sub
    End If
nbrlig = dernier - premier - 1
incr = 1

    
If dernier < premier Then
    MsgBox "Décrémentation impossible", vbExclamation
    Exit Sub
Else
    Range("E" & dlig) = premier
    dlig = dlig + 1
        For ligne = dlig To dlig + nbrlig
         Range("E" & ligne) = Range("E" & ligne - 1) + incr
        Next
End If

Application.ScreenUpdating = True

End Sub


Qu'est-ce qui se passe?

Besoin d'aide!

Merci!

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 avril 2015 à 16:47
Bonjour Bassmart, bonjour le forum,

Peut-être comme ça (en partant d'en bas et en remontant) :

dlig = Cells(Application.Rows.Count, 5).End(xlUp).Rows + 1

0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
13 avril 2015 à 17:27
Merci thautheme!

Mais j'ai une erreur d'exécution 13, Incompatibilité de type avec cette ligne!
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
13 avril 2015 à 18:47
Même problème avec une autre macro, elle fonctionne bien si il y a déjà des valeurs dans le tableau mais quand il n'y a pas ça fait tout planter.
0
thev Messages postés 1852 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 avril 2024 681
13 avril 2015 à 20:06
Tu as une erreur d'exécution parce que tu essaies d'écrire après la dernière ligne de la feuille (ligne n° 1048577 ).
Essaie : dlig = Columns("E").SpecialCells(xlCellTypeLastCell).Row + 1, pour récupérer la première ligne disponible.

--
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
13 avril 2015 à 21:24
Merci thev pour la réponse!

Mais il me donne 0 comme résultat quand je place un espion sur dlig et il me donne une erreur d'exécution 1004.
0
thev Messages postés 1852 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 23 avril 2024 681 > bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023
13 avril 2015 à 23:19
l'erreur d'exécution 1004 se produit à quelle ligne ?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 avril 2015 à 23:24
Bonsoir le fil, bonsoir le forum,

Il y a un S en trop dans le code proposé ! Désolé... Essaie avec :

dlig = Cells(Application.Rows.Count, 5).End(xlUp).Row + 1

Ça devrait marcher...
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
17 avril 2015 à 16:40
Merci thautheme!

Effectivement c'était bien le problème, ça fonctionne bine maintenant!

Encore merci pour votre aide!
0