Erreur 1004

Résolu/Fermé
Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017 - 28 mai 2015 à 19:22
Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017 - 31 mai 2015 à 12:04
Bonjour,
J'ai un petit problème avec un code VBA qui me renvoie l'erreur 1004 : erreur définie par l'application ou par l'objet.
Code :
Sub transpose_dans_tableau()
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.Copy
Sheets("Base de donnée").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
End If
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.ClearContents
Range("B1").Select
Sheets("Base de donnée").Select
Range("A1").Select
End Sub

L'erreur est causée à la ligne Selection.End(xlDown).Select
Quelqu'un saurait-il comment régler le problème ?
Cordialement



1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 29/05/2015 à 09:34
Bonjour,
tu te compliques bien la vie !!! :o)
apparament, tu cherches à écrire dans "base de données" la transposé de B1:B4 de "formulaire à la 1) ligne vide de "base de données" ?
tu tranpose que les valeurs de B1:B4 sinon quels param^tres de format?

un exemple: transporte le valeurs de B1:B4
Option Explicit
'---------
Sub cc()
Dim Ligvid As Integer, Tampon

With Sheets("formulaire")
Tampon = .Range("B1:B4")
.Range("B1:B4").ClearContents
.Range("B1").Activate
End With
With Sheets("Base de donnée")
Ligvid = .Columns("A").Find("", .Range("A1")).Row
.Range("A" & Ligvid).Resize(1, 4) = Application.Transpose(Tampon)
.Range("A1").Activate
.Activate
End With
End Sub


si tu veux reproduire le format de B1:B4 , il serait effectué dans le bloc "base de données" ou peut-^tre mieux par mise au format préalable de la feuille

Michel
0
Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017 3
30 mai 2015 à 08:57
Bonjour,
Merci beaucoup de votre réponse. J'ai testé votre solution, cela marche bien (le copier/coller) mais l'erreur 400 s'affiche maintenant alors que tout marche correctement.
Y aurait-il un moyen de régler cela ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017
30 mai 2015 à 16:51
Bonjour,
Sur quelle ligne se produit l'eereur (elle doit ^tre surligné en Jaune)
0
Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017 3
31 mai 2015 à 11:29
L'erreur se trouve au niveau de ce passage :
.Range("A1").Activate
.Activate

Cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 31/05/2015 à 11:46
Bonjour,
supprime la
(c'était juste pour revenir en A1)
ou peut-être (fais un essai)
.Activate
.range("A1").activate
0
Eiffel01 Messages postés 15 Date d'inscription jeudi 20 février 2014 Statut Membre Dernière intervention 23 juin 2017 3
31 mai 2015 à 12:04
Bonjour,
Je vous remercie pour votre aide. Tout marche pour le mieux !

Bonne journée
0