nonodu37
Messages postés5Date d'inscriptiondimanche 28 décembre 2008StatutMembreDernière intervention 3 mars 2009
-
13 janv. 2009 à 23:29
nonodu37
Messages postés5Date d'inscriptiondimanche 28 décembre 2008StatutMembreDernière intervention 3 mars 2009
-
27 janv. 2009 à 18:45
Bonsoir,
Je cherche à corriger ce code pour mon travail, mon niveau est plutôt basique en VBA j'ai simplement suivi une formation VBA excel mes notions en code s'arrêtent à peu près là ...
Voilà mon problème :
Je souhaite 1) coller une feuille dans un fichier
2) la nommer suivant une variable (Rep),
3) nommer le fichier créé suivant deux variables agence et mois
4) puis insérer la même feuille qui est modifié d'une variable (Rep), les chiffres se mettent à jour par des formules automatiquement générées, on passe donc du Rep 1 au 2, on copie la feuille dans le fichier Agence & mois avant la 1ère feuille on nomme toujours la feuille copié du nom du vendeur, ainsi de suite jusqu'à la prochaine agence .
J'arrive à copier la première entité , à nommer le fichier mais çà bloque quand je passe à la deuxième entité dépendante de la variable Rep
Le code bloque quand je nomme la deuxième feuille çà ne nomme pas la deuxième feuille
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 14 janv. 2009 à 11:43
Tu ne types pas tes variables (aucune !) ?
J'ai alors des difficultés à savoir (entre autres) ce que peut faire exactement et à coup sûr :
Range("F2").Value = Rep + 1
nonodu37
Messages postés5Date d'inscriptiondimanche 28 décembre 2008StatutMembreDernière intervention 3 mars 2009 18 janv. 2009 à 23:24
Bonsoir,
Je vais apporter quelques précisions voire corrections à mon code
Dim Rep as integer 'L'entité
Dim Agence Format texte du style Nom de l'agence_numéro de département
Dim Mois as date ' Format Date
Dim Entité ' format nom_matricule
<strike>Dim CompteRep</strike> j'efface cette variable
Dim Newfile1 as integer
Dim Newfile2 as integer ces deux variables représentent chacune une agence si ces deux agences sont différentes alors créer un nouveau fichier sous le format agence & mois et coller la feuille source sur l'onglet sinon coller
représentant /
' ---------------------------------------------------------
' TROUVER DYNAMIQUEMENT LE NB DE LIGNES ...
For Rep = 1 To 200 'la boucle tourne autant de fois qu'il y a de vendeurs 200 est un exemple j'aimerai compter dans une colonne définie le nombre de cellules non vides ce qui conduit à déterminer n au lieu de 200
'Changes rep
Windows("Reporting commercial vers powerpoint").Activate 'Fichier source
Sheets("New entity").Select ' feuille source de ce fichier
Range("F2").Value = Rep <strike> + 1</strike><strike></strike>
Calculate 'mise à jour liée à Hyperion la feuille source contient une liste déroulante dans laquelle on a tous les vendeurs 1à n à chaque vendeur apparaît ses statistiques liés à une base de données.
Sheets("New entity").Select ' Selection de feuille
Sheets("New entity").Copy
'Gets file names
'Copier new diapo dans un nouveau classeur et l'enregistrer sous C:/mes documents
ActiveWorkbook.SaveAs Filename:= _
"c:\Mes documents" & Agence & "-" & Mois & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
Sheets("New entity").Name = Entite 'la feuille collée dans le fichier Agence&mois se nomme comme l'entité dans la liste déroulante
Range("A1").Activate
'Looks if it needs to create a new file
Windows("Reporting commercial vers powerpoint").Activate
' ---------------------------------------------------------
' soit un rep exist => duplique la feuille (ELSE)
' soit pas de rep => enregistre (THEN)
' ---------------------------------------------------------
If Newfile1 <> Newfile2 Then ' si les deux agences sont différentes alors on créer un fichier et on colle la feuille new entity" du fichier source dans le fichier Agence & mois
Sheets("New entity").Select
Sheets("New entity").Copy
ActiveWorkbook.SaveAs Filename:= _
"c:\mes doc" & Agence & "-" & Mois & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
Else sinon je copie new entity avant feuille (1) de agence & mois
Sheets("New entity").Select
Sheets("New entity").Copy before:=Workbooks(Agence & "-" & Mois & ".xls").Worksheets(1)
End If
Sheets("New entity").Select
Sheets("New entity").Name = Entite
ActiveWorkbook.Save
Next Rep
End Sub
je bloque au moment où je dois passer dans la liste déroulante du rep 1 au 2, le 1 se colle l'onglet et correctement nommé, le fichier de même mais au rep 2 il colle une deuxième fois le rep 1 à côté créer un fichier refuse d le renommer normal l'agence est identique mais il colle bien le rep 2.
il y a des maladresses et des répétitions de lignes dans ce code mais j'aimerais avoir une méthode en fait c'est ma première macro qui suppose de manipuler des variables et je vous remercie par avance de votre patience.
C'est fastidieux à expliquer et relativement clair pourtant quand on l'a sous les yeux :-)
Bonne soirée,