Problème avec macro trouver la dernière ligne vide
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
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:
Qu'est-ce qui se passe?
Besoin d'aide!
Merci!
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!
A voir également:
- 1048577
- Trouver adresse mac - Guide
- Supprimer dernière page word - Guide
- Partager photos en ligne - Guide
- Dernière version chrome - Accueil - Applications & Logiciels
- Caractere vide - Guide
3 réponses
Bonjour Bassmart, bonjour le forum,
Peut-être comme ça (en partant d'en bas et en remontant) :
Peut-être comme ça (en partant d'en bas et en remontant) :
dlig = Cells(Application.Rows.Count, 5).End(xlUp).Rows + 1
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.
--
Essaie : dlig = Columns("E").SpecialCells(xlCellTypeLastCell).Row + 1, pour récupérer la première ligne disponible.
--
Mais j'ai une erreur d'exécution 13, Incompatibilité de type avec cette ligne!