Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Help - Erreur 400

  • Initiateur de la discussion Initiateur de la discussion Isatomafa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Isatomafa

XLDnaute Nouveau
Bonjour,
Je souhaite réaliser un classeur, la feuille 1 étant "Base de données", la feuille 2 "Formulaire".
J'y ai collé une macro qui devrait transposer, via un bouton, ce que j'ai rempli dans mon formulaire vers la base de donnée et ensuite rendre le formulaire vierge pour un nouvel enregistrement.
Dès que j'active le bouton, il me renvoie sur la feuille 1 avec le message Erreur 400.
Pouvez-vous m'aider ? Je connais encore très peu en macro...
MMMMMMMMMMerci !

Voici la macro en question :
Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire").Select
Range("b1:b18").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 = "" ThenRange("A2").Select
Else
Range("a1").Select
Selection.End(x1Down).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
End If'mémoriser le n° de la ligne où coller les données
ligne_active_base = ActiveCell.Row
'collage avec transposition
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Rendre vierge le formulaire
Sheets("Formulaire").Select
Range("B1:B18").Select
Selection.ClearContents
Range("B1").Select
'Retourner dans le tableauSheets("Base de données").Select
Range("A1").Select
 
Re : Help - Erreur 400

Bonjour et bienvenu,
D'abord peut-être tester ceci
Code:
Sub transpose_dans_tableau()
With Sheets("Formulaire")
    T = .Range("b1:b18").Value
    With Sheets("Base de données")
        If IsEmpty(.Range("A1")) Then dl = 1 Else: dl = .Range("A65000").End(xlUp).Row + 1
        .Range(.Cells(dl, 1), .Cells(dl, 18)) = Application.Transpose(T)
    End With
    [COLOR="Blue"].Range("b1:b18").ClearContents[/COLOR]
End With

End Sub
Et pour plus d'efficacité
[thread=32841]charte-du-forum-lire-avant-de-poster[/thread]
A+
kjin
 
Dernière édition:
Re : Help - Erreur 400

Merci de votre réponse, mais je suis vraiment très ignorante dans ce domaine... Vous me proposer de remplacer toute ma macro par celle que vous me donnez plus haut ou juste une partie?
Entre-temps, j'ai "inséré un module" et copier/coller la macro, cela a fonctionné mais pour un seul enregistrement seulement.
Pour le deuxième, je reçois le message suivant :
Microsoft Visual basic
Erreur d'exécution '1004':
Erreur définie par l'application ou l'objet
Fin Débogage

Et apparemment, c'est cette ligne qui me pose problème :
Selection.End(x1Down).Select

Pouvez-vous me conseiller un site ou un bouquin qui expliquerait l'utilisation des macros pas à pas, car je suis uniquement capable d'en copier/coller sans du tout les maîtriser...

Un tout grand merci encore.
 
Re : Help - Erreur 400

Bonjour à tous,

on dirait qu'il y a une faute de frappe :

Code:
[B]Selection.End(x1Down).Select[/B]

doit être remplacé par

Code:
[B]Selection.End(x[COLOR=red]L[/COLOR]Down).Select[/B]
 
Re : Help - Erreur 400

Re, bonjour tototiti,
Merci de votre réponse, mais je suis vraiment très ignorante dans ce domaine... Vous me proposer de remplacer toute ma macro par celle que vous me donnez plus haut ou juste une partie?
Remplace ta macro par la mienne
Note : j'ai rééditer le code car j'avais oublié de vider les cellules B1:B18 à la fin
A+
kjin
 
Re : Help - Erreur 400

Super ! Un tout grand merci, ça fonctionne très bien.

J'avais inséré 1 module puis modifié selon la suggestion de Tototiti, ça fonctionnait bien mais prenait du temps.

J'ai à nouveau essayé en utilisant la macro de Kjin, et c'est parfait (en plus ici, il revient automatiquement sur l'onglet formulaire).

Merci à vous deux.

Encore une question : pouvez-vous me renseigner un bouquin ou un tuto pour l'utilisation des macros, car si j'ai bien suivi vos instructions, je n'ai rien (ou très peu) compris à ce que j'ai fait... (la macro initiale avait été copiée depuis le Net).
 
Re : Help - Erreur 400

Bonjour

En plus d'XLD, j'ajouterai ceci
1) Ouvrir Excel
2)ALT+F11 puis F1

et également le site de Microsoft dédié à Excel
(ainsi que le www en général relatif à Excel)

Cela fait au moins un siècle de lecture.
 
Re : Help - Erreur 400

Et oui, me revoilà...

Sur le web, je n'ai pas trouvé une explication qui démarre du tout début, par contre j'ai trouvé deux bouquins, très bien faits pour démarrer... bien que je cale déjà un peu...

Toujours dans le cas de mon formulaire ci-dessus, je voudrais qu'avant de copier / transposer, le logiciel vérifie que la cellule B1 de ma feuille "Formulaire" n'est pas vide... et m'empêche de continuer le cas échéant.

Donc, je voudrais lui dire "si la cellule B1 est vide, affiche MsgBox et STOP jusqu'à ce qu'elle soit remplie...
J'espère être claire... Merci de votre aide.
 
Re : Help - Erreur 400

@ Staple1600
Bonjour,
Bien sûr j'utilise le code de Kjin et il fonctionne très bien. Le problème est que si pour un encodage, je ne remplis pas la première cellule et comme la macro dit
If IsEmpty(.Range("A1"))
, à l'enregistrement suivant, il remplace les données sur la ligne incomplète. Peut-être devrais-je simplement lui dire alors :
If IsEmpty(.Range("A1:A17"))
??? Je crois que je viens d'avoir une illumination 😀, malheureusement je ne suis pas à la maison et donc ne sais pas tester...
J'essaie en rentrant et vous donne le titre des bouquins à ce moment-là.
Merci, belle soirée à vous !
 
Re : Help - Erreur 400

Voilà donc. Et bien, j'ai commencé par "Le Progammeur - Excel et VBA" de Mikaël Bidault aux éditions PEARSON mais ai très vite calé p.136, chapitre 5, juste quand ça commençait à devenir intéressant à "Développer dans VBE" et avant "Variables et Constantes".
Alors, je me suis tournée vers "Ressources Informatiques - VBA Excel 2007 - Maîtrisez la programmation sous Excel - Les TP + livre de référence" de M. AMELOT et H. LAUGIE chez ENI Editions... en cours, p. 122, chap. 4, "les objets Excel"...
C'est là que je me dis que j'aurais dû commencer par "Programmation VBA pour Excel 2007 POUR LES NULS" de John Walkenbach...
Bref je désespère, mais j'ai repris un peu d'espoir en lisant la "charte-du-forum-lire-avant-de-poster" et en lisant
Beaucoup ont commencé sur ce forum par poser une question, puis maintenant ce sont eux/elles qui répondent.
... bref, j'ai encore un peu d'espoir...
Merci de votre patience en tout cas...
 
Re : Help - Erreur 400


Bon, j'ai essayé "If IsEmpty(.Range("A1:Q17")), mais ça ne fonctionne pas, c'eut été trop beau... 🙄
Et donc, comme je le disais hier, il est possible que mes enregistrements ne contiennent pas de donnée pour la première cellule, mais à ce moment-là, une fois que la macro vérifie If IsEmpty(.Range("A1)), Excel ne trouve rien en colonne A, il s'imagine alors que c'est pareil pour les colonnes B à Q...
J'espère que quelqu'un pourra m'aider. Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
568
Réponses
15
Affichages
269
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
868
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…