Macro de copie

Bonjour,

Complètement novice dans la création de macro, je recherche des piste pour commencer.

Mon objectif et de copier le contenue uniquement ( sans mise en forme ) de cellules d'une feuille de travaille sur une autre qui me servirait de base de donner (dans le même classeur )

j'aimerai que la copie se fasse en activant le macro sur la feuille de travaille ( par un bouton par exemple ), et que cella se copie automatiquement a la suite (par ligne) sur la feuille de bd.

C'est assez dur a expliquer, donc je joint mon fichier.

20test.xlsm (35.72 Ko)

Exemple =

copie de "E4" de la feuille "RCP" sur la première cellule vide de la colonne "A" de la feuille "BD"

copie de "C18" de la feuille "RCP" sur la première cellule vide de la colonne "B" de la feuille "BD"

Etc... Pour avoir la recette sur 1 ligne.

Et pour simplifier le tout : Il n'y a en tout 8 arômes et certain peuvent ne pas être utiliser, dans se cas, j'aimerai que

la cellule reste vide, et quelle le reste a la prochaine copie.

Quelle formulation je pourrait utilisée pour :

1 - sélectionner et copier sur la feuille RCP

2 - Sélectionner la cellule d'une colonne définie de la première ligne vide et coller sans la mise en forme sur la feuille BD

Merci de votre aide, j'espère avoir été assez claire dans mes explication.

bonjour

comme tant d'autres ici, tu voudrais un "formulaire"

Excel n'est pas bien pour un vrai formulaire comme dans un progiciel

donc, créer un onglet unique :

  • nomrecette
  • ingrédient
  • quantité
  • propriété
  • etc.

une recette tiendra sur plusieurs lignes

tu auras des centaines de lignes

! chaque ligne contient nomrecette !

ensuite tu filtres sur la colonne nomrecette pour voir ta recette

et tu fais des TCD pour avoir des calculs par recette

note : des données standard des ingrédients (calories, prix... ) peuvent être rapatriées dans ton onglet avec des RECHERCHEV

essaye et reviens avec un exemple simplifié

Bonjour Jmd, et merci de ta réponse.

J'ai déjà penser a utiliser un formulaire ainsi qu'une base de donner sous Access aussi, je doit d’ailleurs avoir quelque tentative de se projet qui traîne sur mon ordi.

J'ai abandonner car sa ne correspondez pas a se que je recherche.

La feuille RCP me sert aussi de support pour la création de recette, elle me permet de quantifier ml d’arôme en fonction d'un % et de le modifier aisément selon plusieurs facteur. Chose que je n'ai pas réussi a faire avec un formulaire de saisie.

J'ai trouvez une solution a mon problème en simplifiant les tache a faire par la macro :

  • Dans l'onglet "BD", j'ai rempli la ligne 3 avec les correspondance que je souhaite venant de la feuille "RCP" a l'aide de formule.
  • J'ai ensuite fait une macro qui insert une ligne, et copie les valeur de la ligne 3 dessus ( avec l'enregistrement de macro )
  • Et pour finir j'ai masquer la ligne 3.
20test.xlsm (52.75 Ko)

Voila la macro faite par l'enregistreur :

Sub CopieRCP()
'
' CopieRCP Macro
'

'
    Sheets("BD").Select
    Rows("4:4").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    Rows("3:3").Select
    Selection.Copy
    Rows("4:4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("RCP").Select

End Sub

Le code et bourrer de " .select ", sa marche très bien, mais y a t'il un moyen de simplifier le code ?

Merci encore

Bonsoir,

Sub TftBD()
    Dim lnBD(35), i%, ii%, k%, kk
    With Worksheets("RCP")
        lnBD(0) = .Cells(4, 5)
        kk = Array(3, 13, 5, 10)
        For i = 1 To 29 Step 4
            ii = i \ 4 + 18
            If .Cells(ii, 5) = "" Then Exit For
            For k = 0 To 3
                lnBD(i + k) = .Cells(ii, kk(k))
            Next k
        Next i
        kk = Array(8, 10, 5)
        For k = 0 To 2
            lnBD(33 + k) = .Cells(39, kk(k))
        Next k
    End With
    With Worksheets("BD")
        i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(i, 1).Resize(, 36) = lnBD
    End With
End Sub

Procédure pour opérer le transfert des valeurs sur la BD, sur la première ligne libre (sans insertion de ligne).

A raccorder à un bouton...

Pour bien faire il faudrait compléter par l'effacement des données venant d'être transférées. Pas de problèmes pour C18:I25, ni pour E4:N4, mais pour les lignes 12 à 14 H12 contient une formule alors que H13 non, je m'abstiens. Mais cela reste facile à ajouter.

NB- Et efface ton code !

Cordialement.

Merci Beaucoup !

Sa fonctionne parfaitement ! même si je suis a 1000 lieux de comprendre le code !

Bravo.

Rechercher des sujets similaires à "macro copie"