Problème macro - erreur 400

Fermé
nb59 - 6 déc. 2007 à 11:41
 BSF - 1 mars 2011 à 15:38
Bonjour,

J'ai un problème avec une macro : erreur 400.

A priori, en utilisant le debogage, le pb vient de la ligne Selection.End(xlDown).select de la macro suivante :

Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.Copy

'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Base de données").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

'Memoriser le n° de la ligne où coller les données
ligne_cative_base = cativecelle.Row

'Collage avec transposition
Range("A" & ligne_active_base + 1).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True

'Rendre vierge le formulaire
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.ClearContents
Range("B3").Select

'Retourner dans le formulaire
Sheets("FORMULAIRE").Select
Range("B3").Select

En gros, je veux faire remplir un formulaire sur une feuille 1 et enregistrer les données dans une base sur une feuille 2. J'avoue, c'est une macro copiée sur internet et je ne suis pas au bout de mes peines car je voudrais trier les données (colonne 1 puis colonne 2) afin de faire des stats...mais si qqu'un peut m'aider déjà pour cette étape...MERCI D'AVANCE!

nb59
A voir également:

4 réponses

nicodoudou Messages postés 48 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 44
7 déc. 2007 à 23:37
En fait passe plutot par des variable Excel

Sub transpose_dans_tableau()

'Atteindre le formulaire et mémoriser les données
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.Copy

'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Base de données").Select
i=2
while(not(ragne("a" & i)=""))
i=i+1
wend
Range("A" &i).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True

'Rendre vierge le formulaire
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.ClearContents
Range("B3").Select

'Retourner dans le formulaire
Sheets("FORMULAIRE").Select
Range("B3").Select

end sub

Essaie avec cela c plus simple te beaucoup plus puissant

A+

Nico
1
Salut Nico,

Merci d'avoir pris le temps de me répondre...

J'ai fait un copier coller de ta macro mais je me retrouve encore avec l'erreur 400.

Tu penses que j'ai un pb de compatibilité des formats de cellules?

Merci d'avance!

nb59
0
nicodoudou Messages postés 48 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 44
10 déc. 2007 à 11:39
Petite erreur de synthaxe peut etre


Sub transpose_dans_tableau()

'Atteindre le formulaire et mémoriser les données
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.Copy

'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Base de données").Select
i=2
while(not(range("a" & i)=""))
i=i+1
wend
Range("A" & i).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True

'Rendre vierge le formulaire
Sheets("FORMULAIRE").Select
Range("B3:B13").Select
Selection.ClearContents
Range("B3").Select

'Retourner dans le formulaire
Sheets("FORMULAIRE").Select
Range("B3").Select

end sub


Si cela ne marche pas envoie moi ton fichier sur mon email nicolas_doulin@yahoo.fr


A+


Nico
1
nicodoudou Messages postés 48 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 44
11 déc. 2007 à 17:42
Penses à cloturer ton post

Je sais qu'il est cloturer
1
Bonjour je ne pense pas que ce post soit cloturé.

J'ai eu le même soucis, j'ai longtemps cherché une solution et j'ai finalement résolu le problème !

Ma macro était écrite dans la page "FORMULAIRE", je l'ai déplacée dans la page principale VBA "ThisWorkBook" et la macro fonctionne parfaitement !

En espérant avoir pu aidé d'autres bloqués !
0
Claude > Pellok
18 févr. 2010 à 10:31
Bonjour,

J'ai copié mon code dans ThisWordBook est la macro produit toujours une erreur 400.

Mon code et le suivant :

Sub transpose_dans_tableau()

'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire").Select
Range("C5:C10").Select
Selection.Copy

'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Base de données").Select
i = 2
While (Not (Range("a" & i) = ""))
i = i + 1
Wend
Range("A" & i).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True

'Rendre vierge le formulaire
Sheets("Formulaire").Select
Range("C5:C10").Select
Selection.ClearContents
Range("C5").Select

'Retourner dans le formulaire
Sheets("Formulaire").Select
Range("C5").Select

End Sub

Cependant dans mon formulaire de saisie (feuille 2), j'aimerais que la cellule C5 soit transposée dans ma base de données (feuille 1) à chaque validation mais sans que celle-ci soit rendu vierge à chaque validation.

Merci d'avance à la personne qui pourra me filer un coup de main dans cette affaire.
0
Waaaooooo!! Merci Pelloc! Exactement mon problème !!
0
Bonjour à tous,

Je reviens sur le forum ou j'ai pompé tout ces bon conseille, car j'ai un probléme a souméttre.
J'aimerai dans le code çi dessus pouvoir choisir directement dans le formulaire la feuille excel qui seras compléter par les données inscrit dans le formulaire.

'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Base de données").Select

En effet je m'occupe d'une asso sportive et j'aimerais completer la base en fonction de la saison en cours, sans a chaque fois modifier le code.
Je pensé juste creer un choix de liste qui reprend le meme nom que mais feuille et l'intégrer au formulaire. Ce qui me mamque c'est la façon de modifier le code pour changer la base de destination en fonction de la variable du formulaire.

Merçi énormement pour l'aide déjas présente.
Volevo
1