Insertion verticale dans une base de données
ndl22
-
ndl22 -
ndl22 -
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.
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.
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
-
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 -
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.