Macro excel : formulaire et base de données

carosempe -  
 ccinfo -
Bonjour à tous,

J'ai un formulaire excel relié à une base de données excel par une macro que j'ai créée grâce à l'enregistreur de macro.
Cette macro me permet de coller les éléments saisis dans mon formulaire sur ma base de données.

Le problème est que ces infos se collent uniquement sur la première ligne de ma base de données au lieu de s'intégrer les unes en dessous des autres.
Je suppose qu'il manque quelquechose dans ma macro permettant de faire cela mais je ne sais pas quoi.

Voici mon code:

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/01/2008 par SARRUS-TEINTURIER
'

'
Range("B10:B12").Select
Selection.Copy
Sheets("Données").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
Range("N10:P10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Saisie").Select
Range("B16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
ActiveWindow.SmallScroll ToRight:=-6
Range("B10").Select
ActiveSheet.Paste
Sheets("Saisie").Select
Range("B17").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
Range("A10").Select
ActiveSheet.Paste
Sheets("Saisie").Select
Range("B18:B26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
Range("E10:M10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A11").Select
Sheets("Saisie").Select
Range("B10:B12,B16:B26").Select
Range("B16").Activate
Application.CutCopyMode = False
Selection.ClearContents
End Sub



Merci pour votre aide

Caro
A voir également:

9 réponses

touyou23
 
il faut a un moment donné que tu insère le nombre de lignes correspondant au nombre de lignes de ta table source dans ta table de destination si tu veux pouvoir conserver les données précédentes.

Essaye de réenregistrer ta macro en faisant ca...
16
jolie17
 
Va voir cet article il donne le code VBA qui correspond à ton besoin:

https://www.01net.com/actualites/
2
pang
 
Je ne connais vraimant rien en programmation. et encore mois visual basic. j'ai suivie la demarche maios la macro présent une erreur a la ligne:
Selection.PasteSpecial Paste:=x1PasteAllExceptBorders, Operation:=x1None, SkipBlanks:=False, Transpose:=True
Que faire? merci
0
YATA
 
Sub transpose_dans_tableau()
Sheets("formulaire client risqués").Select
Range("B1:B16").Select
Selection.Copy
Sheets("base de données client risqués").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
ligne_active_base = ActiveCell.Row
ActiveSheet.Range("A" & ligne_active_base + 1").Select
ActiveSheet.Paste

Skipblanks:=False_, Transpose:=True
Sheets("formulaire").Select
Range("B1:B16").Select
Selection.ClearContents
Range("B1").Select
Sheets("base de données client risqués").Select
Range("A1").Select


End Sub
2
ODILE
 
ActiveSheet.Range("A" & ligne_active_base + 1").Select

et

Skipblanks:=False_, Transpose:=True


s'affichent en rouge ... :(

message d'eereur: erreur de compilation, erreur de syntaxe
0
sousou
 
j'ai besoin des informations concernant les formulaires et les bases de données en excel
1

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

Posez votre question
carosempe
 
Bonjour,

Pour ma table de destination ce sera ma base de données, mais qu'entends-tu par table source ?


Merci pour votre aide

Amicalement

Caro
0
ODILE
 
j'ai le meme problème,
as tu eu une réponse depuis???
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 766
 
Bonjour,
Formulez votre question concernant votre problème, vous aurez une réponse plus adaptée.
0
ODILE
 
Dans le meme style que précédemment, j'essaie de créer une base de données excel.
Mon tableau de ba se de données me convient parfaitement,
en revanche j'essaie de créer un formulaire de saisie sur une autre feuille (il y aura plusieurs utilisateurs de cette base)

j'ai saisi le code proposé par le site 01.net,

Sub transpose_dans_tableau()
Sheets("formulaire client risqués").Select
Range("B1:B16").Select
Selection.Copy
Sheets("base de données client risqués").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
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Skipblanks:=False_, Transpose:=True
Sheets("formulaire").Select
Range("B1:B16").Select
Selection.ClearContents
Range("B1").Select
Sheets("base de données client risqués").Select
Range("A1").Select


End Sub

MAIS il semble qu'il y ai une erreur... ca ne fonctionne pas
message d'erreur: "l'indice n'appartient pas à la selection"
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 766
 
Salut,
Question : pourquoi tester A2 dans la base de données?
A1 est "non vide"?
Tu dois copier B1:B16 de ta feuil formulaire vers la première ligne vide de ta feuil base de donnée, c'est bien ça?
Alors plus simplement :

Sub transpose_dans_tableau()
Sheets("formulaire client risqués").Range("B1:B16").Copy
Sheets("base de données client risqués").Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Skipblanks:=False_, Transpose:=True
ActiveSheet.Range("A1").Select
Sheets("formulaire client risqués").Range("B1:B16").ClearContents
End Sub
0
YATA
 
Bonjour,
a quelle ligne se trouve ton erreur !
pour le copié collé ! essaie :
ActiveSheet.Range("A" & ligne_active_base + 1").Select
ActiveSheet.Paste
0
ODILE
 
je met ca ou? désolée,... je m'initie a VBA
0
Utilisateur anonyme
 
quelqu'un a trouver une solution à ce problème ?

voici mon code j'ai le même problème:

Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les donnée
Sheets("formulaire").Select
Range("B1:B3").Select
Selection.Copy
'Test pour déterminer la ligne où coller les infos dans le tableau
Sheets("base de donnée").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Else
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
End If
'Memorise 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:=x1PasteAllExceptBorders,
Operation:=x1None, SkipBlanks:=False, Transpose=True

'Rendre vierge le formulaire
Sheets("formulaire").Select
Range("B1:B3").Select
Selection.ClearContents
Range("B1").Select
'Retourner dans le tableau
Sheets("Base de données").Select
Range("A1").Select
End Sub

Les ligne en gras en rouge dans visual et il me dise:

Message d'erreur : "Erreur de compilation:
Attendu: Expression"

Merci pour votre aide

Cordialement,

Bibu06
0
pilas31 Messages postés 1878 Statut Contributeur 647
 
Bonjour,

J'ai déjà corrigé cette erreur dans le forum il y a quelque temps.
il faut remplacer les 1 (le chiffre 1) par la lettre L dans x1None et x1PasteAllExceptBorders

A+
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
MESSAGE EN DOUBLON
voir
https://forums.commentcamarche.net/forum/affich-14519469-macro-exel-formulaire-base-de-donnee

Pour les autres: La macro fait 7 lignes....
0
ccinfo
 
Bonsoir, je rencontre le problème suivant : En lançant le pogramme l'erreur suivant s'affiche 'Erreur d'éxécution '9' L'indice n'appartient pas à la selection

Merci pour l'aide
0