Copier de lignes d'un formulaire vers une Base de donnée

  • Initiateur de la discussion Initiateur de la discussion mcdooh
  • 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 !

mcdooh

XLDnaute Nouveau
Bonjour à tous

Sur Excel 2003 sous XP Pro, je travaille sur une base de données

pour le moment on va dire que j'ai une feuille "base de donnée" et une feuille "formulaire"

- dans cette page formulaire je souhaiterai rentrer plusieures lignes contenant toutes par exemple Nom / prénom / matricule / machine / date / pièce / nombre etc....
actuellement je n'arrive à gerer qu'un seule ligne en fait dans mon formulaire je rempli une ligne j'ai créé une macro qui recherche la première ligne vide de ma base de donnée et j'insert ma ligne à cette endroit

voici le code il y a peut-être plus simple mais bon ça fonctionne 🙂

Code:
Sub validligne()
'
' validligne Macro
' 
'

'
    Range("A6:K6").Select
    Selection.Copy
    
     
'test pour déterminer la ligne ou coller les infos dans le tableau
   Sheets("Base de données Machine").Select
    valeurA2 = Range("A2").Value
    If valeurA2 = "" Then
    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 ou coller les données
    ligne_active_base = ActiveCell.Row

'collage dans la base
        
    Sheets("Base de données Machine").Select
    Range("A" & ligne_active_base).Select
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Sheets("Formulaire carton prod").Select
    Range("H6:K6").Select
    Application.CutCopyMode = False
    Selection.ClearContents

donc ma question maintenant :

puis-je faire la même chose mais en remplissant plusieures lignes dans mon formulaires par exemple 5 lignes puis les coller dans la basse de données
mais le gros HIC c'est que je peux très bien en avoir de 1 à 30 à coller ça dépend des fois

Voilà je ne sais pas si je ne suis bien fait comprendre

merci de vos sugestions et réponses
 
Re : Copier de lignes d'un formulaire vers une Base de donnée

bonjour macDooh,

Avec la macro suivantes, il te suffit de sélectionner les cellules dans la feuille 'Formulaire carton prod' pour les copier et les coller dans la feuille 'Base de données Machine' à partir de la première ligne libre de la colonne A.


Code:
Sub ValiderLignes()
    Dim rgDestination  As Range
    
    With Sheets("Base de données Machine")
        Set rgDestination = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
    End With
    Selection.Copy rgDestination
    Application.CutCopyMode = xlCopy
    Selection.ClearContents
End Sub

A +
 
Re : Copier de lignes d'un formulaire vers une Base de donnée

grand merci à toi

ça fonctionne nickel, sinon y a t'il une astuce pour faire une sélection automatique des cellules en automatique

je créé mes lignes puis je clic sur un bouton et ça me sélectionne ma zone à copier/coller ????
 
Re : Copier de lignes d'un formulaire vers une Base de donnée

Bonjour

Une piste

Utiliser un formulaire avec dans une cellule l'indication de la donnée et la valeur dans la cellule adjacente.
Dans la base de donnée on retrouve dans la première ligne comme nom de colonne l'indication de la donnée.

La macro lisant le nom des colonnes ira rechercher dans la feuille la cellule contenant cette valeur et recopiera par offset le contenu de la cellule dans la BDD.

JP
 
Re : Copier de lignes d'un formulaire vers une Base de donnée

bonjour macDooh,

Avec la macro suivantes, il te suffit de sélectionner les cellules dans la feuille 'Formulaire carton prod' pour les copier et les coller dans la feuille 'Base de données Machine' à partir de la première ligne libre de la colonne A.


Code:
Sub ValiderLignes()
    Dim rgDestination  As Range
    
    With Sheets("Base de données Machine")
        Set rgDestination = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
    End With
    Selection.Copy rgDestination
    Application.CutCopyMode = xlCopy
    Selection.ClearContents
End Sub

A +

bon finalement ça fonctionne mais.....

je ne veux pas effacé tout de suite le tableau de départ car je me sert des valeurs pour autres choses donc j'ai supprimé "Selection.clearcontents" jusque là je métrise 😎

mais et oui il y a un mais dans mon tableau de part j'ai des formules "rechercheV" ou des opérations a1+1


Par exemple : je saisi par exemple un matricule dans la case A1 et je vais recherche le Nom de la personne sur une autre feuille du classeur donc je voudrais copier les valeurs pas les formules dans ma base de donnée et là je sèche

pas facile les Noob je sais et ils sont exigeant en plus 😛😀

merci @ vous de vos réponses
 
- 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
455
Réponses
18
Affichages
134
Réponses
2
Affichages
214
Réponses
17
Affichages
877
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
436
Retour