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

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
 
G

Guest

Guest
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 +
 

mcdooh

XLDnaute Nouveau
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 ????
 

jp14

XLDnaute Barbatruc
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
 

mcdooh

XLDnaute Nouveau
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 :cool:

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 :p:D

merci @ vous de vos réponses
 

Discussions similaires

Réponses
5
Affichages
98

Statistiques des forums

Discussions
312 104
Messages
2 085 345
Membres
102 868
dernier inscrit
JJV