begin process at 2012 02 13 07:52:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

Formulaire et Controls

 > 

Problèmes avec Excel et VB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problèmes avec Excel et VB

mercredi 25 mars 2009 à 14:27:54 | Problèmes avec Excel et VB

picpic62

Bonjour,
Je suis pas sur d'avoir posté exactement où il fallait mais je vous prie de m'excuser. J'ai quelques problèmes avec Excel. Je dois générer plus ou moins 4000 fiches qui comportent chacune 6 champs de saisie. Mais je n'ai pas d'expérience en ce qui concerne les macro et encore moins en ce qui concerne VB.
Voici mon problème:
J'ai une "fiche" type (vierge) qui comporte les 6 champs à remplir. J'ai un autre document excel avec les données (rangées dans un tableau) à insérer dans chaque fiche (une ligne du tableau correspond à une fiche).
Pour le moment, j'ai trouver ces lignes-ci pour enregistrer les pg excel:

[Code]
Public Sub CommandButton1_Click() 'copie sauvegarde classeur
Dim nom As String
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub

[/Code]

Mais je n'ai pas besoin de la date dans le nom du document il me faudrait une incrémentation (1,2,3...) et pas de bouton sinon faut que j'ouvre les 4000 fiches :S.

J'ai aussi créé la macro suivante:

[Code]
Sub Remplissage()
'
' Remplissage Macro
'

'
Range("C8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C5"
Range("F8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C4"
Range("J8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C9"
Range("C13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C1"
Range("G13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C2"
Range("J13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C3"
Range("J14").Select
End Sub

[/Code]

Qui elle sert juste a affecter la valeur au champ de la fiche à partir du tableau contenu dans le 2eme document.

Ce que je voudrait faire, c'est une boucle while qui répette ces tâches en incrémentant (pour passer à la ligne suivante du tableau) en enregistrant chaque fois la fiche avec le nom et le n°.

Je sais pas si j'ai été assez claire?

Je vous remercie de pretter attention à mon problème.
samedi 28 mars 2009 à 21:36:33 | Re : Problèmes avec Excel et VB

Duke49

Membre Club
Dim i as long


Public Sub CommandButton1_Click() 'copie sauvegarde classeur
   Dim Nom As String

      i = i + 1
      Nom = ActiveWorkbook.Name & "_" & Format(CStr(i), "0###")
      ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
End Sub

samedi 28 mars 2009 à 21:45:48 | Re : Problèmes avec Excel et VB

Duke49

Membre Club
Peut etre un truc dans ce genre:

Sub Remplissage()

Dim i as long
Dim Nom As String

     i=1

    
While not i = 4000
       Range("C8").Select
       ActiveCell.FormulaR1C1 = "=[L" & cStr(i) & "1RACK_FC_EA.xls]L1RACK_FC_EA!R2C5"
       Range("F8").Select
       ActiveCell.FormulaR1C1 = "=[L" & cStr(i) & " RACK_FC_EA.xls]L1RACK_FC_EA!R2C4"
       Range("J8").Select
       A ctiveCell.FormulaR1C1 = "=[L " & cStr(i) & " RACK_FC_EA.xls]L1RACK_FC_EA!R2C9"
       Range("C13").Select
       ActiveCell.FormulaR1C1 = "=[L " & cStr(i) & " RACK_FC_EA.xls]L1RACK_FC_EA!R2C1"
       Range("G13").Select
       ActiveCell.FormulaR1C1 = "=[L " & cStr(i) & " RACK_FC_EA.xls]L1RACK_FC_EA!R2C2"
       Range("J13").Select
       ActiveCell.FormulaR1C1 = "=[L " & cStr(i) & " RACK_FC_EA.xls]L1RACK_FC_EA!R2C3"
       Range("J14").Select

      
   Nom = ActiveWorkbook.Name & "_" & Format(CStr(i), "0###")
          ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom

          i = i + 1

    Wend
End Sub
dimanche 29 mars 2009 à 13:32:15 | Re : Problèmes avec Excel et VB

picpic62

Réponse acceptée !

Merci pour vos réponses les gens! Ca fait plaisir de voir que sur le net il y a encore des gens qui rendent service sans rien attendre en retour.
Avec beaucoup d'aide d'un forumeur, j'ai trouvé la solution à mon problème... et j'y ai même ajouté une impression à chaque fiche. Voici le code pour ceux que ça interesse (à noter que si vous voulez l'utiliser il faut changer le nom de l'imprimante ;) )
[code]
Function numeroter_fichier(fichier As String, numero As Integer) As String
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")

    numeroter_fichier = FSO.GetParentFolderName(fichier) & "\" & _
                        FSO.GetBaseName(fichier) & "_" & numero & "." & _
                        FSO.GetExtensionName(fichier)
End Function
Public Sub ZolieProc(wb_1 As Workbook)
  Dim num As Integer
  Dim nom As String
  Dim t_wb As Workbook
  Dim s_ws As Worksheet
  Dim t_ws As Worksheet

  Set s_ws = Workbooks("L1RACK_FC_EA.xlsx").Worksheets("L1RACK_FC_EA")

  For num = 1 To 2
    i = num + 1
    nom = numeroter_fichier(wb_1.Path & "\" & wb_1.Name, num)
    wb_1.SaveCopyAs nom

    Set t_wb = Workbooks.Open(nom)
    Set t_ws = t_wb.Worksheets(1)

    t_ws.Range("B8").Value = s_ws.Range("E" & i).Value
    t_ws.Range("F8").Value = s_ws.Range("D" & i).Value
    t_ws.Range("F10").Value = s_ws.Range("I" & i).Value
    t_ws.Range("B15").Value = s_ws.Range("A" & i).Value
    t_ws.Range("G15").Value = s_ws.Range("B" & i).Value
    t_ws.Range("J15").Value = s_ws.Range("C" & i).Value
  
    t_wb.Save
    Application.ActivePrinter = "PDFCreator sur Ne00:"
    ExecuteExcel4Macro _
       "PRINT(1,,,1,,,,,,,,2,""PDFCreator sur Ne00:"",,TRUE,,FALSE)"
    t_wb.Close
  Next
End Sub

Public Sub CommandButton1_Click() 'copie sauvegarde classeur
    ZolieProc ActiveWorkbook
End Sub
[/code]



Cette discussion est classée dans : select, range, ea, fc, l1rack


Répondre à ce message

Sujets en rapport avec ce message

deboguage [ par poupou04 ] Range("C6").Select Application.CutCopyMode = False Selection.Copy Range("C16").Value2.Select Selection.PasteSpecial Paste:=xlPasteValues, VBA: Touche de combinaison pour ecrire le petit ciseau dans le code visual [ par zin ] Private Sub Sous_totaux_art_Click()If Range("A4").Value "" Then Range("A3").Select Range(Selection, Selection.End(xlDown)).Select c.Find pour PRO. SOS [ par AMP ] ouai, pour pro...je cherche à ce que excel me repère tout les cellules d'une meme colonne qui ont le meme code.With Worksheets("TRAITEMENT").Range("A1 Une stagiaire en détresse !!! [ par CaroleF ] Actuellement en stage en entreprise, il m'est demandé de faire un petit programme sur excel avec quelques macros. Le programme ci-dessous(*) est affec fusion sur excel [ par vynill ] hello J'ai une macro sur excel en vba qui me permet a partir de 2 classeurs (1 prevision et 1 realisation) d'obtenir un autre document pour pouvoir l un petit problème [ par fred64300 ] Bonjour mesdames Messeiursj'ai un problème avec cette macrocar lorsque je vais chercher dans la feuille gestion en i5 la valeur 1 il me copie deux foi Problème de calendrier et de nettoyage de cellules [ par THiOoOuZZ ] Salut a tous cela fait maintenant 1 semaine que je m interesse de très près a vb au cours de mon stage puisque je dois planifier la maintenance d une Help stagiaire avec Erreur d'exécution ..... [ par titou2A ] Bonjour,aidez moi svp!!je suis entrain de faire une appli qui utilise des fichiers Excel, la première fois que je clique sur le lien tout ce passe trè [VBA] Problème de modélisation graphique - échelles dynamiques [ par xav0211 ] Bonjour à tous! Voilà g un "petit" problème de modélisation graphique.... et vu que je suis pas fort en prog VBA g besoin de vos conseils avertis! V


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,117 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales