Transférer des données d'un tableau vers un autre et pouvoir les rappeler

bonjour, je suis pas du-tout programmeur et je souhaiterais automatiser un petit programme excel pour me permettre de faire des devis.

je voudrais juste un macro pour me permettre de transférer les données de mon devis feuille "Devis" vers "BD_Devis" les unes a la suite des autres avec comme identifient le numéro de devis ("E3") et un autre macro qui me permet de rappeler les données correspondant au numéro de devis et qui apparentera dans le même ordre dans mon tableau. pour info mon devis s’incrémente avec un formulaire et est contenu dans un tableau. je suis complètement nul en VBA mais pour vous sa devrais pas être très compliqué, je vous remercie déjà d'avoir pris le temps de me lire.

Bonjour ramsapat le forum

mais pour vous sa devrais pas être très compliqué

bah si c'est compliqué aussi pour nous, et surtout cela prend du temps, beaucoup de temps, juste pour t'expliquer!!

a+

papou

Re bonjour Ramsapat le forum,

Je viens d'ouvrir ton fichier et déjà numéroter des devis avec une formule ="N° " &ANNEE(AUJOURDHUI())

Cela signifie qu'a chaque ouverture de ton devis il va prendre un numéro différent !!!!!!!!!

Idem pour la date du document en C1

Maintenant pour régler ton problème à mon sens il suffit de créer un dossier Devis Édités et d'enregistrer tes devis automatiquement dans ce dossier et lorsque tu rappelles un devis recharger le devis simplement

a+

Papou

Re bonjour Ramsapat le forum

1) tu décompresses le dossier sur ton bureau (tu ne l'ouvres pas en temporaire)

2) tu ouvres le dossier sur ton bureau Ramsapat V1 et là tu as un fichier Ramsapat V1.xlsm tu louvres et tu testes

a+

Papou

39ramsapat-v1.zip (159.00 Ko)

Re bonjour Ramsapat le forum

Je continue mon monologue!!!!!!!!!!!!!!!!!!!!!!!!!!

1) tu décompresses le dossier sur ton bureau (tu ne l'ouvres pas en temporaire)

2) tu ouvres le dossier sur ton bureau Ramsapat V1 et là tu as un fichier Ramsapat V1.xlsm tu l'ouvres et tu testes

a+

Papou

37ramsapat-v2.zip (189.60 Ko)

Bonjour, et merci a toi patritec de t'être penché sur mon fichier, ton code fonctionne super bien est ça pourrais être une solution, mais le fichier que j'ai joint est vraiment une simplification du vrai fichier qui est déjà truffé de code avec 4 Userforme, et concernant l'incrémentation du devis, j'ai déjà un code qui me permet d'incrémenter un Numéro unique format "D00001" ainsi de suite et j'ai aussi déjà une sauvegarde automatique de chaque devis en format ".xls" et ".pdf" tout sa grâce a un Userforme qui me sert à remplir mon devis à créer des lignes a en supprimer, et même a crée des sous-totaux et tout se fait par des listbox. j'ai essayé d'adapter ce que tu as fait avec mes code déjà existant, mais c'est un casse-tête pas possible vu tout les paramètres qu'il faudrait revoir, c'est pour sa que je voulais juste faire un genre de sauvegarde des données a la suite d'un tableau et avec une simple recherche sur le numéro de devis les rappeler dans ma table objet("Tab_Devis"), en tout cas merci je pense que ce que tu a fait servira a beaucoup d'autre personne. Merci

si sa peut aider a comprendre je joint mon fichier de base que j'ai simplifier en espérant que quelqu'un pourra m'aider a trouver une solution pour me permettre de modifier des anciens devis. encore merci a vous !

Bonjour Ramsapat le forum,

Je viens d'ouvrir ton fichier, et c'est sur que vu tes codes, tu ne dois pas avoir le niveau pour modifier par rapport à ce que je t'ai fait, je pense ne pas me tromper!!

Une certitude tes codes sont illisibles, pas un seul n'est incrémenté correctement, et ton userform Client là ????? !!!!!!!!

Il existe des modules de classe, c'est pour éviter d'avoir à faire ce que tu as fait dans le code de cet userform

Mais si tu avais passé ton fichier au départ, je t'aurais fait les modifs pour obtenir ce que je t'ai fait, mais là franchement je n'aime pas travailler pour rien, alors pour le moment je ne vais pas toucher. à ton fichier

C'est comme à l'ouverture rendre l'application excel non visible et ne pas le signaler, c'est du même niveau

Une autre certitude c'est possible de modifier tes anciens devis, enfin moi je sais le faire!!

Voilà Voilà.

Bonne journée

Papou

Bonsoir paritec, tout d'abord toutes mes excuses pour ne pas avoir mis ce fichier avant, c'est dû à mon ignorance dans le domaine, ensuite, j'avoue que je suis très nul en vba. Je bricole pour arriver a ce que je veux au final, mais honnêtement, je sais que c'est plus que brouillon et je ne parle pas des deux autre Userform que j'ai enlevé ça doit être encore pire... Mais apparemment ça fonctionne. Je bosse sur ce fichier depuis plusieurs mois, j'y passe tout mon temps de libre, je comptais voir un pro pour élaborer mon petit programme de gestion, mais pour l'instant, je n'ai pas encore les moyens donc j'essaie de me débrouiller tout seul, et si je suis venu chercher de l'aide, c'est juste que depuis quelques semaines, je fais du sur place avec ce fichier. Ton aide serait vraiment le bien venue, alors merci si tu veux bien m'aider.

Bonjour le forum,

Voilà, je reviens vers vous avec un fichier qui fait grossièrement ce que je voulais, mais comme je vous ai dit je suis plus que nul en VBA et comme d'hab, c'est du gros bricolage de code et de plus, j'ai un souci de format de donnée une fois importer. Si quelqu'un peut résoudre le problème de format et du même coup remettre un peut d'ordre dans mes codes ça serai vraiment très sympas de votre part. Merci de d'avoir pris le temps de me lire.

Bonjour le forum,

Voilà, je reviens vers vous avec un fichier qui fait grossièrement ce que je voulais, mais comme je vous ai dit je suis plus que nul en VBA et comme d'hab, c'est du gros bricolage de code et de plus, j'ai un souci de format de donnée une fois importer. Si quelqu'un peut résoudre le problème de format et du même coup remettre un peut d'ordre dans mes codes ça serai vraiment très sympas de votre part. Merci de d'avoir pris le temps de me lire.

bon je me suis déconnecté des autres forum je vais bien voir si on m'aide ici au final.... sinon je me débrouillerais tout seul, j'aime pas trop supplier pour avoir des réponses c'est pas trop mon style.... je vais les chercher!!!

Bonjour Ramsapat le forum

quand j'aurai du temps je regarderai peut-être

a+

papou

salut patritec , ok je te remercie sincèrement !!!

Bonjour Ramsapat le forum

Si tu estropies encore mon nom, je ne te répond plus !!

1) question, quand tu as un devis dans ton application et que tu veux le modifier tu fais comment ???

2) tu peux le modifier avec ton userformBiblio ????

Si je vais plus loin il me faudra des explications claires car je ne vais pas perdre mon temps à découvrir le beaba de l'utilisation.

Déjà une certitude tu n'as pas de base devis digne de ce nom.

Une question générale, tu dis être nul en vba, mais il y a des kilomètres de code, il y a bien un auteur??

Pour quelle raison ne demande tu pas à l'auteur de continuer??

c’est juste pour mon info personnelle

Merci de répondre déjà aux deux questions ci-dessus.

a+

Papou

Bonjour paritec,

Déjà excuse moi d'avoir estropié ton nom,

Ensuite, tu as raison de me poser toutes les questions nécessaires avant de faire quoi que ce soit ça évite que tu perdes ton temps et je suis comme toi, je n'aime pas perdre mon temps aussi !! Ceci étant :

pour répondre à tes questions,

1)la création des devis se fait exclusivement par formulaire, a aucun moment je touche à ("Devis") tu verras sur la droite de mon ("userformBiblio") j'ai mis des boutons qui me permettent de crée des ligne d'en supprimer, de changer les quantités et j'apelle des nouvelles références en double-cliquant dans-là ("listbox1").

2)La réponse se trouve dans la première question a laquelle j'ai répondu.

3) Pour ta question personnelle

Ces kilomètres de codes, c'est le fruit des mois de recherche sur internet sur les sites et forums dédier à VBA. En gros, les véritables auteurs de ces codes se sont des personnes comme toi, moi je les est juste adapté dans la mesure du possible c'est pour sa que tu va trouver des variables qui peuvent être déclaré explicitement mais qui reste dans la procédure, mais ce n'est pas pour autant que je les comprends, car des fois, je n'y arrivais pas et du coup, je changer ma méthode comme par exemple le fait de passer par une listbox pour import-export les données du devis, c'est en voyant ton exemple que je me suis mis à chercher des codes pour faire a peut prêt la même chose, mais a ma façon.

Et si l'or de ton première intervention sur mon fichier, tu ne m'avais pas dit que mes codes sont mal incrémenté et qu'il y avait des méthodes à suivre pour ce genre de programme, je n'aurai même pas cherché a le faire vérifier par quelqu'un croyant que mon fichier était fonctionnel comme elle était.

Je dis que je suis nul en VBA, car je ne connais pas le langage a proprement dit et tout les subtilité de la programmation, mais je connais certains trucs pour créer des petit macro tout simple.

Voilà, j'espère avoir répondu à tes questions et si tu veux savoir d'autre chose n'hésite pas. Merci

oui autre chose tu risque de trouver des codes qui ne servent plus a rien , des méthodes de Transfer que j'ai abandonnée ,cause de ne pas arriver a ce que je voulais au finale.

exemple:

Private Sub CommandButton1_Click()
Dim Tableau() As Variant
Dim I As Integer
Dim j As Byte

 'Worksheets("teste").Select

Application.ScreenUpdating = False
Worksheets.Add 'création d'une nouvelle feuille temporaire

    ' On créer un nouveau cadriage de tableau. Changer les cellules entre "" si elle change
    Range("B13", Range("B13").End(xlToRight).End(xlDown)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    ' Ici vous pouvez changer les couleurs, l'épaisseur .... des bordures des cellules
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    'With Selection.Borders(xlInsideHorizontal)
        '.LineStyle = xlContinuous
        '.ColorIndex = 0
        '.TintAndShade = 0
        '.Weight = xlThin
    'End With

  With ActiveSheet.PageSetup

    Columns("A:A").Select
    Selection.ColumnWidth = 5
    Columns("B:B").Select

    Selection.ColumnWidth = 42
    Columns("B:B").WrapText = True

    Columns("C:C").Select
    Selection.ColumnWidth = 5
    Columns("D:D").Select
    Selection.ColumnWidth = 5
    Columns("F:F").Select
    Selection.ColumnWidth = 0
    Columns("H:H").Select
    Selection.ColumnWidth = 5
    Columns("I:I").Select
    Selection.ColumnWidth = 5
    Columns("J:J").Select
    Selection.ColumnWidth = 0
    Columns("M:M").Select
    Selection.ColumnWidth = 0

        'entête de page
        .LeftHeader = "DEVIS" 'nom du classeur
        .CenterHeader = "" 'l'heure
        .RightHeader = "&d" 'nom de la feuille

        'pied de page
        .LeftFooter = "" 'coté gauche (numéro page sur nombre de pages)
        .CenterFooter = "sorec" 'centre
        .RightFooter = "&P&"" / ""&N"  'coté droit

        'marges
        .LeftMargin = Application.InchesToPoints(0.1)
        .RightMargin = Application.InchesToPoints(0.1)
        .TopMargin = Application.InchesToPoints(0.7)
        .BottomMargin = Application.InchesToPoints(0.7)
        .HeaderMargin = Application.InchesToPoints(0.51)
        .FooterMargin = Application.InchesToPoints(0.51)
        End With
Tableau() = ListBox3.List
j = ListBox3.ColumnCount
I = ListBox3.ListCount
Range("A13:" & Cells(I, j).Address) = Tableau()

'option pour adapter la largeur des colonnes à la taille des données
'ActiveSheet.Range("A1:" & Cells(i, j).Address).EntireColumn.AutoFit
 If Application.Dialogs(xlDialogPrinterSetup).Show = True Then
  End If
ActiveSheet.PrintOut 'impression
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True

  End Sub

Et je pense que cette partie de code ne va plus me servir non plus si tu trouves une méthode qui permet le Transfert des anciens devis. De même pour les modules, il y en a qui ne serve à rien, elles étaient juste là pour tester des morceaux de code.

End If
Application.DisplayAlerts = False
Set wkA = ThisWorkbook
chemin = "C:\Users\rampatrick\Desktop\SOREC\"
fichier = "DEVIS.xlsx"
Workbooks.Open chemin & fichier
Set wkB = ActiveWorkbook
wkA.Sheets("devis").Copy before:=wkB.Sheets(Sheets.Count) 'Sheets (1)
 ActiveSheet.Name = Range("E4") '& (Sheets.Count)
 wkB.Close True
MsgBox ("La feuille est copiée") 
 Application.DisplayAlerts = True

Si tu veux, je peux te joindre mon fichier original avec les 4 ("userform") mais je ne l'ai pas encore finalisé et tu verras encore plus de codes a l'intérieur avec pleins de macro qui permettent d'utiliser la molette de la souris dans les listbox et combobox ou même d'adapter la taille de mon formulaire a l'écran, mais je te rassure tout de suite les macro ne sont pas de moi, elles sont libres sur l'internet. Je te dit tout ça, car je n'ai vraiment pas envie que tu perds ton temps sur mon bricolage qui normalement a une logique. Mais je sais aussi que pas tout le monde n'as la même logique et que pour un résultat finale faut cerner le problème dans son ensemble. Donc à toi de me dire ce que tu en penses et de me dire comment te joindre mon fichier. Si tu n'en vois pas l'utilité au moins je te l'aurais demandé, de mon côté, je comptais remettre de l'ordre dans mes autres formulaires en m'inspirant de ce que tu vas me proposer comme solution sur celle-là. Bien sûr en espérant que j'arrive à comprendre quelque chose, mais bon, je me débrouillerai, car je suis du genre a ne pas abuser de la gentillesse des gens. a plus

Re Ramsapat le forum

Pour le moment je ne parlerai que de création de devis car c'est de cette création que les modifications sont possibles ou non.

Tu dis

a aucun moment je touche à ("Devis")

donc tu craies un devis uniquement dans un userform? et avec un userform?

La création de tes devis est faite de quelle manière? , et ensuite comment tu mets en page ton devis?

et ne me répond pas que tu l'as déjà écrit dans le post 1 car je m'en moque on n'est plus au post 1 mais maintenant, alors moi je veux bien me pencher sur le problème qui es plus qu'épineux, mais je ne veux pas passer une journée à comprendre justement ta logique qui manifestement n'est pas la mienne.

Explique la méthodologie:

1) tu ouvres le fichier

2) tu cliques le bouton?

3) tu appuies?

4) tu choisis ??

5) quand tu as fini pour imprimer l'offre tu fais etc etc etc

même si cela te paraît pas indispensable pour moi ça l'est

a+

papou

Rechercher des sujets similaires à "transferer donnees tableau pouvoir rappeler"