Excel 07 Macro

Résolu
Cécile -  
 Corrine -
Bonjour,
Pouvez-vous me dire pourquoi j'ai une erreur 400 quand j'envoie ma macro.

Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.Copy
'Test pour déterminer 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_de_données + 1).Select
End If
'Mémorise le n° de la ligne ou coller les données
ligne_active_base_de_données = ActiveCell.Row
'Collage avec transposition
Range("A" & ligne_active_base_de_données).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Rendre vierge le formulaire
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.ClearContents
Range("B1").Select
'Retourner dans le tableau
Sheets("Base_de_données").Select
Range("A1").Select
End Sub

Merci
A voir également:

6 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Dans Excel, faire Alt + F11. Dans la barre de menu, Insertion -> Module.

EDIT: Ou encore Alt+F11, dans le panneau de gauche, sélectionner par exemple ThisWorkbook (1 clic), puis clic droit de la souris et dans le menu qui s'ouvre Insertion -> Module

Voili voilou ...

;o)
1
Cécile
 
Bonjour, Polux31
Ah! Oui! La macro a bien fonctionné du moment que je l'ai mise dans un module à part.
Donc pour toutes réalisations de macros, il vaut mieux que je les mettent dans un module à part.
Puis-je regroupé les macros dans un fichiers pour les avoir de suite quand j'en besoin ?
Merci mon problème est résolu.
A+ Amicalement, ;-)
0
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Bonjour,

Juste une remarque naïve :

Ligne 14
ligne_active_base = ActiveCell.Row

ce n'est pas plutôt
ligne_active_base_de_données = ActiveCell.Row



A+
0
Cécile
 
Bonjour, Pilas31
J'ai essayé comme cela , mais cela fait une autre erreur en passant la macro en pas à pas:
La méthode Select de la classe Range a échoué

Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.Copy
'Test pour déterminer 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_de_données = ActiveCell.Row
Range("A" & ligne_active_Base_de_données + 1).Select
End If
'Mémorise le n° de la ligne ou coller les données
ligne_active_Base_de_données = ActiveCell.Row
'Collage avec transposition
Range("A" & ligne_active_Base_de_données).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Rendre vierge le formulaire
Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.ClearContents
Range("B1").Select
'Retourner dans le tableau
Sheets("Base_de_données").Select
Range("A1").Select
End Sub
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Peux-tu nous dire sur quelle ligne est l'erreur ?

;o)
0
Cécile
 
Bonjour, Polux31
C'est la ligne 12
Range("A1").Select
Merci
0
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Re Bonjour,

Je ne sais pas ce qu'en pense Polux31 mais cela n'est pas possible qu'une erreur se produise sur un Range("A1").select sauf si la feuille est protégée mais dans ce cas l'erreur est plus explicite

Donc dernière hypothèse :

Cécile, est-ce que ta macro ne se trouve pas dans les macros de la feuille "Formulaire" Dans ce cas il faut la mettre dans un module à part.

Merci de vérifier cela.

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
re,

Je comprends pas pourquoi il y a tant de "Select" ...

Il est préférable de faire par exemple :

Sheets("Formulaire").Range("B1:B4").Copy plutôt que :

Sheets("Formulaire").Select
Range("B1:B4").Select
Selection.Copy

ou encore plus loin :
valeurA2 = Sheets("Base_de_données").Range("A2").Value plutôt que

Sheets("Base_de_données").Select
valeurA2 = Range("A2").Value


Je crois que le problème provient du fait que dans le IF, Excel ne sait pas à quelle feuille correspond la plage Range("A1") ou Range("A2").

Il faut préciser la feuille : Sheets("Base_de_données").Range("A1").Value

;o)

0
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Oui, je suis d'accord avec toi les selects ne sont pas forcément utiles mais je pense que sa procédure doit être déclarée dans une feuille plutôt que dans un module à part, j'ai fait le test et on obtient bien l'erreur 400 du départ.

A+
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui très certainement aussi. Sans compter que si la feuille est supprimée, le code est également perdu :oZ

;o)
0
Cécile > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, Pilas31 & Polux31
Comment dois-je m'y prendre pour créer la macro dans un module à part.
Merci
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
re,

Oui tu peux. Pour cela il faut faire un fichier .xla.

Regarde ici et là aussi , tu as des tutos qui expliquent comme faire.

;o)
0
Cécile
 
Bonjour, Polux31
Eh! bien! C'est du service rapide.
Je suis contente de l'aide que vous m'apportez et c'est génial Excel, c'est un long apprentissage mais très stimulant quant on trouve comment l'employer ?
J'aimerai bien voir plein d'autres façons d'employer Excel, au quotidien, pour ce faciliter la vie.
Merci Polux31 A+ ;o)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Cécile
 
De rien, c'est avec plaisir ... ^^

Bonne continuation.

;o)
0
Corrine > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir, Polux31
Je me permets de vous solliciter parce que je n'ai pas réussi à trouver une réponse à mon problème.
Je vous explique tout ça :
j'aurai besoin d'une macro qui ferai un suivi de prix de la feuil Formulaire sur la troisième feuille en prenant en compte de A2 à D2 avec le prix soit au kilo, soit au litre, soit à la pièce et au-dessus du prix -la date
http://www.cijoint.fr/cjlink.php?file=cj200904/cijHMAfz4y.xls
Je vous remercie pour l'aide que vous m'apporterez.
Bonne nuit
0