Copier juste la valeurs

Bonjour,

Je suis en train de créer une BDD pour ce faire j'ai créé un formulaire qui permet de l'alimenter. Un bouton "Mise à jour" permet d'envoyer tout dans la base de données. Cependant j'ai remarqué que toute la cellule était copier les listes déroulantes aussi .

J'aimerais savoir quelle solution serait la plus approprier pour effectuer cette action ?

Sachant que mon tableau et sur 9 lignes de 15 colonnes si je remplis tout mon formulaire et ensuite atterrir dans ma BDD toujours a la dernière ligne.

Voici mon code :

Workbooks("BDD").Activate
Worksheets("base de données").Activate

    derniere_ligne1 = Sheets("base de données").Range("A2").End(xlDown).Row
   derniere_ligne1 = derniere_ligne1 + 1
   ' MsgBox derniere_ligne1

Workbooks("formulaireBDD").Activate
Worksheets("formulaire").Activate

    derniere_ligne2 = Sheets("formulaire").Range("A5").End(xlDown).Row
    'Dim tab_2()
    'ReDim tab_2(derniere_ligne2 - 4, 21)

x = derniere_ligne2 - 4

'For y = deniere_ligne2 + 1 To derniere_ligne2 + 4
 Workbooks("formulaireBDD").Worksheets("formulaire").Range("A5:O" & derniere_ligne2).Copy Workbooks("BDD").Worksheets("base de données").Range("A" & derniere_ligne1 & ":O" & derniere_ligne1 + x)

Merci , d'avance

Cordialement.

Bonjour Lidizis,, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim CB As Workbook 'déclare la variable CB (Classeur Base)
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim DLB As Integer 'déclare la variable DLB (Dernière Ligne de l'onglet Base)
Dim CF As Workbook 'déclare la variable CF (Classeur Formulaire)
Dim OF As Worksheet 'déclare la variable OF (Onglet Formulaire)
Dim DLF As Integer 'déclare la variable DLF (Dernière Ligne de l'onglet Formulaire)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)

Set CB = Workbooks("BDD") 'définit le classeur base CB
Set OB = CB.Worksheets("base de données") 'définit l'onglet base OB
DLB = OB.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la premiere ligne vide DLB de la colonne A de l'onglet base
Set CF = Workbooks("formulaireBDD") 'définit le classeur formulaire CF
Set OF = CF.Worksheets("formulaire") 'définit l'onglet formulaire OF
DLF = OF.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DLF de la colonne A de l'onglet formulaire
TV = CF.Range("A5:O" & DLF) 'définit le tableau TV
BD.Cells(1, DLB).Resize(UBound(TV, 1), UBound(TV, 2)).Value = TV 'renvoie dans la cellule de la première ligne vide de la colonne A redimensionnée, le tableau TV
End Sub

Bonjour Ladizis, ThauThème,

essaye d'abord la solution de ThauThème ; je pense qu'elle devrait marcher ; sinon, pour répondre à ta question par MP, essaye ceci :

tu as cette longue instruction qui fait un copier / coller de tout, avec les formats de cellule et aussi ta liste déroulante :

Workbooks("formulaireBDD").Worksheets("formulaire").Range("A5:O" & derniere_ligne2).Copy Workbooks("BDD").Worksheets("base de données").Range("A" & derniere_ligne1 & ":O" & derniere_ligne1 + x)

fais-la en 2 instructions afin de faire un copier / coller valeurs :

Workbooks("formulaireBDD").Worksheets("formulaire").Range("A5:O" & derniere_ligne2).Copy
Workbooks("BDD").Worksheets("base de données").Range("A" & derniere_ligne1 & ":O" & derniere_ligne1 + x).PasteSpecial xlPasteValues

pour enlever le cadre de tirets défilants situé sur le contour de la zone copiée, ajoute :

Application.CutCopyMode = False

dhany

Bonjour,

A voir avec affectation des valeurs mais je n'ai pas testé :

Sub Test()

    Dim FeBDD As Worksheet
    Dim FeForm As Worksheet
    Dim Lig As Long
    Dim Lig2 As Long

    Set FeBDD = Workbooks("BDD").Worksheets("base de données")
    Set FeForm = Workbooks("formulaireBDD").Worksheets("formulaire")

    With FeBDD: Lig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1: End With

    Lig2 = FeForm.Range("A5").End(xlDown).Row

    FeBDD.Range("A" & Lig & ":O" & Lig + Lig2 - 4) = FeForm.Range("A5:O" & Lig2)

 End Sub

Parfait, Merci beaucoup ça fonctionne nickel.

Cordialement Ladizis

Rechercher des sujets similaires à "copier juste valeurs"