Aide sur mon tableau de bords
christ69fr
-
christ69fr -
christ69fr -
Bonjour,
j'ai créé un tableau de bords avec une macro et celui ci me mets que l'indice ne correspond pas à la selection.
je vous joint le fichiers.
si qqun peut bien m'aider.
http://www.cijoint.fr/cjlink.php?file=cj200908/cijsR3EEaF.xls
Merci d'avance
j'ai créé un tableau de bords avec une macro et celui ci me mets que l'indice ne correspond pas à la selection.
je vous joint le fichiers.
si qqun peut bien m'aider.
http://www.cijoint.fr/cjlink.php?file=cj200908/cijsR3EEaF.xls
Merci d'avance
A voir également:
- Aide sur mon tableau de bords
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Tableau croisé dynamique - Guide
6 réponses
Bonjour,
Avant de déposer un fichier, il serait bien d'expliquer clairement ici le problème, de mettre le morceau de code qui pose problème etc ...
Si tu avais fait un peu attention à ton code, en passant par exemple en pas à pas, tu te serais rendu compte que l'onglet "Base de données" n'existe pas dans ton classeur. Par contre l'onglet "Bases de données", lui existe.
;o)
Avant de déposer un fichier, il serait bien d'expliquer clairement ici le problème, de mettre le morceau de code qui pose problème etc ...
Si tu avais fait un peu attention à ton code, en passant par exemple en pas à pas, tu te serais rendu compte que l'onglet "Base de données" n'existe pas dans ton classeur. Par contre l'onglet "Bases de données", lui existe.
;o)
Le problème est que j'ai une feuille formulaire dans lequel je veux mettre des requêtes et quand je clique sur enregistrer, il me le mets dans une feuille "tableau de bord".
Le problème est ma macro. Quand je clique dessus, il me mets que l'indice ne correspond pas à la sélection.
j'ai changé comme tu m'as dit l'onglet "Base de données" par "Bases de données" et maintenant, il me met "Erreur d'exécution 1004" et "Erreur définie par l'application ou par l'objet".
je ne comprends pas.
Merci de ton aide
Voici le code.
Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("FORMULAIRE").Select
Range("D1:D14").Select
Selection.Copy
'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Bases 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("D1:D14").Select
Selection.ClearContents
Range("D1").Select
'Retourner dans le formulaire
Sheets("FORMULAIRE").Select
Range("D1").Select
End Sub
Le problème est ma macro. Quand je clique dessus, il me mets que l'indice ne correspond pas à la sélection.
j'ai changé comme tu m'as dit l'onglet "Base de données" par "Bases de données" et maintenant, il me met "Erreur d'exécution 1004" et "Erreur définie par l'application ou par l'objet".
je ne comprends pas.
Merci de ton aide
Voici le code.
Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("FORMULAIRE").Select
Range("D1:D14").Select
Selection.Copy
'Test pour determiner la ligne où coller les infos dans le tableau'
Sheets("Bases 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("D1:D14").Select
Selection.ClearContents
Range("D1").Select
'Retourner dans le formulaire
Sheets("FORMULAIRE").Select
Range("D1").Select
End Sub
Je n'ai pas le temps, je jeterai un coup d'oeil ce soir.
Quelques petites remarques:
- Il est préférable de coder dans un module, plutôt que sur une feuille. Si tu supprimes ta feuille, tu perds le code ...
- Lorsque l'on doit manipuler plusieurs feuilles ou classeurs, il est préférable de déclarer des objets plutôt que de faire des "Select". Par exemple:
;o)
Quelques petites remarques:
- Il est préférable de coder dans un module, plutôt que sur une feuille. Si tu supprimes ta feuille, tu perds le code ...
- Lorsque l'on doit manipuler plusieurs feuilles ou classeurs, il est préférable de déclarer des objets plutôt que de faire des "Select". Par exemple:
Sub transpose_dans_tableau()
Dim wsFormulaire As Worksheet
Dim wsBasededonnees As Worksheet
Set wsFormulaire = ThisWorkbook.Worksheets("FORMULAIRE")
Set wsBasededonnees = ThisWorkbook.Worksheets("Bases de données")
'Atteindre le formulaire et mémoriser les données
'Sheets("FORMULAIRE").Select
'Range("D1:D14").Select
'Selection.Copy
wsFormulaire.Range("D1:D14").Copy
'Test pour determiner la ligne où coller les infos dans le tableau'
'Sheets("Bases de données").Select
i = 2
While wsBasededonnees.Range("a" & i) <> ""
i = i + 1
Wend
'Range("A" & i).Select
'Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
'Operation:=xlNone, skipblanks:=False, Transpose:=True
wsBasededonnees.Range("A" & i).PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True
'Rendre vierge le formulaire
'Sheets("FORMULAIRE").Select
'Range("D1:D14").Select
'Selection.ClearContents
'Range("D1").Select
wsFormulaire.Range("D1:D14").ClearContents
'Retourner dans le formulaire
'Sheets("FORMULAIRE").Activate
'Range("D1").Select
wsFormulaire.Range("D1").Activate
Set wsFormulaire = Nothing
Set wsBasededonnees = Nothing
End Sub
;o)
ok, merci a toi
j'attendrai demain si tu as le temps de le regarder ce soir.
je vais essayer de faire comme tu m'as dit pour voir ce que cela donne.
j'attendrai demain si tu as le temps de le regarder ce soir.
je vais essayer de faire comme tu m'as dit pour voir ce que cela donne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir un petit rectificatif.
Dans la feuille "FORMULAIRE"
Dans un module (module1)
Dans la feuille "FORMULAIRE"
Sub transpose_dans_tableau() Module1.transpose End Sub
Dans un module (module1)
Sub transpose()
Dim wsFormulaire As Worksheet
Dim wsBasededonnees As Worksheet
Dim i As Integer
Set wsFormulaire = ThisWorkbook.Worksheets("FORMULAIRE")
Set wsBasededonnees = ThisWorkbook.Worksheets("Bases de données")
wsFormulaire.Range("D1:D14").Copy
'Test pour determiner la ligne où coller les infos dans le tableau'
i = 2
While wsBasededonnees.Range("A" & i) <> ""
i = i + 1
Wend
' Coller
wsBasededonnees.Range("A" & i).PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, transpose:=True
'Rendre vierge le formulaire
wsFormulaire.Range("D1:D14").ClearContents
'Retourner dans le formulaire
wsFormulaire.Activate
wsFormulaire.Range("D1").Select
Set wsFormulaire = Nothing
Set wsBasededonnees = Nothing
End Sub