Excel 07 Macro
Résolu
Cécile
-
Corrine -
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
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:
- Excel 07 Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
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)
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)
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+
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+
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
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
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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)
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)
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)
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)
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)
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
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
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, ;-)