Insertion verticale dans une base de données

Fermé
ndl22 - 17 juil. 2013 à 10:59
 ndl22 - 21 juil. 2013 à 15:44
Bonjour,

Je me permets de revenir vers vous après plusieurs essais de différents codes.
J'ai actuellement un code qui me permet d'insérer les données de mon formulaire dans la base tout en respectant un décalage pour inscrire les données dans les lignes vierge.
Mon soucis est simple, deux lignes de mon code doivent transcrire une sélection de plusieurs données, or celui-ci ne marche que si ma sélection n'est que d'une donnée.

 
If (Enregistre) Then
    'Coller les informations vers la base
        plva = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & plva) = Feuil2.Range("C3")
        .Range("C" & plva) = Feuil2.Range("C4")
>Bug sur ces deux lignes ci-dessous<
        .Range("D" & plva) = Feuil2.Range("B7:B256")
        .Range("E" & plva) = Feuil2.Range("C7:C256")
    'Rend vierge le formulaire
        Feuil2.Range("C4").ClearContents
        Feuil2.Range("B7:C256").ClearContents
    End If


N'hésitez pas à me le dire si je ne suis pas très clair dans mon explication.
En vous remerciant de votre aide ou de vos pistes.

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 17/07/2013 à 11:17
Bonjour

.Range("D" & plva) = Feuil2.Range("B7:B256")
.Range("E" & plva) = Feuil2.Range("C7:C256")


Dans une cellule, tu affectes une plage de 250 cellules !

Michel
0
Oui, je sais. Seulement la fonction Select ne marche pas et si je mets la colonne comme plage, il me colle en boucle les données.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 juil. 2013 à 12:25
???....
0
Après quelques recherches j'ai modifié mon code ainsi.

 If (Enregistre) Then
    'Coller les informations vers la base
        plva = .Range("A" & Rows.Count).End(xlUp).Row + 1
        Feuil2.Range("B4:B503").Copy
        .Range("A" & plva).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Feuil2.Range("C4:E503").Copy
        .Range("C" & plva).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Rendre vierge le formulaire
        Feuil2.Range("C4:E4").ClearContents
        Feuil2.Range("D5:E503").ClearContents
      End If


Ma sélection s'enregistre, cependant à chaque enregistrement il place les nouvelles données après le collage précédent même si une dizaine de lignes sont vides. Or je souhaiterais que le collage se face à partir de la première lignes vides de la base. J'ai cherché en me demandant si ça venait de mon code qui recherche la ligne vide ou celui du copier/coller.
0