Erreur 1004 en copiant dans la première cellule vide d' une colonne [RESOLU]

elvioc

XLDnaute Nouveau
Bonjour à tous.

Je fais appel à votre aide car je bloque depuis ce matin sur un problème dans ma macro.
J' avoue certains vont trouver que c' est codé avec mes pieds, mais je débute, et pour le moment c' est plus de l' assemblage de bouts de code qu' autre chose... J' essaye d' assimiler au fur et à mesure.

Dans mon cas, je souhaite que :
_ l' utilisateur réponde par "oui" ou "non" à une question
_ qu' en fonction de cela, une cellule soit copiée depuis la page "question" et collés sur la page "analyse" dans la 1ère cellule "non-vide" sous "A13"
(jusque là tout marche)

_ toujours en fonction de la réponse, une autre cellule soit copiée depuis la page "question" et collés sur la page "analyse" dans la 1ère cellule "non-vide" sous "D13"
Et là, ça ne marche pas, je comprends pas pourquoi ça fonctionne pour la 1ère et pas la seconde fois...

Merci d' avance pour vos lumières !!!

Voici mon code, avec en rouge l' endroit de l'erreur :

Sub Q2()

If MsgBox("Le client est il mineur ?", vbQuestion + vbYesNo, "Type de dossier") = vbYes Then
Application.Goto (ActiveWorkbook.Sheets("Questions").Range("C6"))
Selection.Copy
Sheets("Analyse").Select
Cells(ActiveSheet.Cells(13, 1).End(xlDown).Row + 1, 1).Select
ActiveSheet.Paste

Application.Goto (ActiveWorkbook.Sheets("Questions").Range("G7"))
Selection.Copy
Sheets("Analyse").Select
Cells(ActiveSheet.Cells(13, 4).End(xlDown).Row + 1, 1).Select
ActiveSheet.Paste

Call Q3

Else
Application.Goto (ActiveWorkbook.Sheets("Questions").Range("D6"))
Selection.Copy
Sheets("Analyse").Select
Cells(ActiveSheet.Cells(13, 1).End(xlDown).Row + 1, 1).Select
ActiveSheet.Paste

Application.Goto (ActiveWorkbook.Sheets("Questions").Range("G5"))
Selection.Copy
Sheets("Analyse").Select
Cells(ActiveSheet.Cells(13, 4).End(xlDown).Row + 1, 1).Select
ActiveSheet.Paste

Call Q5

End If

End Sub
 
Dernière édition:

Theze

XLDnaute Occasionnel
Re : Erreur 1004 en copiant dans la première cellule vide d' une colonne

Bonjour,

La ligne :
Code:
Cells(ActiveSheet.Cells(13, 4).End(xlDown).Row + 1, 1).Select
doit être (sur la colonne D, 4ème) :
Code:
Cells(ActiveSheet.Cells(13, 4).End(xlDown).Row + 1, 4).Select
mais évite autant que possible les Select, GoTo et Activate. Teste avec ce qui suit :
Code:
Sub Q2()

    If MsgBox("Le client est il mineur ?", vbQuestion + vbYesNo, "Type de dossier") = vbYes Then
    
        With Sheets("Analyse")
        
            .Cells(.Cells(13, 1).End(xlDown).Row + 1, 1) = Worksheets("Questions").Range("C6").Value
            .Cells(.Cells(13, 4).End(xlDown).Row + 1, 4) = Worksheets("Questions").Range("G7").Value
            
        End With
    
        Call Q3
    
    Else

        With Sheets("Analyse")
        
            .Cells(.Cells(13, 1).End(xlDown).Row + 1, 1) = Worksheets("Questions").Range("D6").Value
            .Cells(.Cells(13, 4).End(xlDown).Row + 1, 4) = Worksheets("Questions").Range("G5").Value
            
        End With
        
        Call Q5
    
    End If

End Sub

Hervé.
 

elvioc

XLDnaute Nouveau
Re : Erreur 1004 en copiant dans la première cellule vide d' une colonne

Bonjour Hervé

Merci pour ce début de réponse et 1ère correction !

J ai toujours une erreur 1004 Erreur définie par l' application ou par l' objet.
Et la ligne concernée est celle-ci :

.Cells(.Cells(13, 4).End(xlDown).Row + 1, 4) = Worksheets("Questions").Range("G7").Value

Je ne comprends vraiment pas pourquoi il fonctionne pour la colonne A et pas pour la D
 

elvioc

XLDnaute Nouveau
Re : Erreur 1004 en copiant dans la première cellule vide d' une colonne

Watch : : .Cells(.Cells(13, 4).End(xlDown).Row + 1, 4) = Worksheets("Questions").Range("G7").Value : <Expression non définie dans le contexte> : Empty : Q02Age.Q2

Voilà ce que j obtiens après avoir lancer le débuggage.

C' est bien celà que tu voulais ?
 

Theze

XLDnaute Occasionnel
Re : Erreur 1004 en copiant dans la première cellule vide d' une colonne

Bonjour,

Je pense qu'il n'y a, pour le moment, aucune donnée en colonne A et/ou D de la feuille "Analyse" d'où l'erreur car il ne trouve pas la dernière cellule non vide.

Hervé
 

elvioc

XLDnaute Nouveau
Re : Erreur 1004 en copiant dans la première cellule vide d' une colonne

Bonjour

Problème résolu !

En remplaçant :
Application.Goto (ActiveWorkbook.Sheets("Questions").Range("G7"))
Selection.Copy
Sheets("Analyse").Select
Cells(ActiveSheet.Cells(13, 4).End(xlDown).Row + 1, 1).Select
ActiveSheet.Paste

par :
Sheets("Questions").Range("G7").Copy Sheets("Analyse").Range("D" & Sheets("Analyse").Range("D" & Rows.Count).End(xlUp).Row + 1)

Merci de votre aide :)
 

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 182
Membres
103 491
dernier inscrit
bilg1