Signaler

Feuille sous excel [Résolu]

Posez votre question ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - Dernière réponse le 13 nov. 2017 à 22:36 par ange-lyna
Bonjour
J'ai une question mes feuilles sous excel sont tous nommés avec des code de réquisitions exemple 13-5503, la 2e 13-5504, la 3e 13-5505 ainsi de suite et j'ai comme 200 feuilles à faire et je dois toujours déplacer copier renommer avec la uiste de mes numéros c'est long en titi ensuite je dois refaire la même chose pour un autre département avec un autre séquence de numéros différent aidez moi il doit y avoir une macro qui le fera automatiquement ?
Utile
+0
plus moins
Bonjour

1) Avoir une feuille modèle nommée modele sur laquelle on met un bouton pour lancer la copie
2) une feuille nommée Datas qui recevra en cellule A1 le n° de la dernière feuille créée -Placer cette feuille en tête, suivie de la feuille modèle
3) dans le code du bouton mettre le nom de la macro à lancer : nouvelle
4) dans un module de l’éditeur VBA copier coller la macro suivante :
Sub nouvelle()

    Sheets("modele").Select
    Sheets("modele").Copy After:=Sheets(2)
    Sheets("Datas").Range("A1") = Sheets("Datas").Range("A1") + 1
    Sheets("modele (2)").Select
     ActiveSheet.Shapes("CommandButton1").Select
    Selection.Cut
    Sheets("modele (2)").Name = "13-550" & Sheets("Datas").Range("A1")
   
End Sub


Voir exemple que je viens de poster
http://www.commentcamarche.net/forum/affich-34968147-avoir-une-incrementation-d-un-numero-pour-chaque-nouvelle-saisie#p34969835

Cdlmnt
Via

ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 1 nov. 2017 à 14:13
OUfff attend une minute je ne comprend pas vraiment
je vais te montrer mon classeur si je peux et tu pourras si tu veux m'inscrire exactement ce que je dois mettre dans la macro
merci
regarde mon tableau sous les messages merci


faire une macro qui créerait mes feuilles à ma place. Genre si j'ai 250 noms dans ma liste, juste faire une macro au lieu de 250 clic droit et de taper mes 250 noms de feuilles. ensuite je dois refaire la meme chose avec un autre departement avec une séquence de numéros différent et à chaque fois je dois renommer une à la fois de même que pour mes liens hypertextes je dois un à la fois modifier les liens à mes numéros 13-5500 ainsi de suite aidez moi svp
merci à l'avance
Répondre
Donnez votre avis
Utile
+0
plus moins
OUfff attend une minute je ne comprend pas vraiment
je vais te montrer mon classeur si je peux et tu pourras si tu veux m'inscrire exactement ce que je dois mettre dans la macro
merci


faire une macro qui créerait mes feuilles à ma place. Genre si j'ai 250 noms dans ma liste, juste faire une macro au lieu de 250 clic droit et de taper mes 250 noms de feuilles. ensuite je dois refaire la meme chose avec un autre departement avec une séquence de numéros différent et à chaque fois je dois renommer une à la fois de même que pour mes liens hypertextes je dois un à la fois modifier les liens à mes numéros 13-5500 ainsi de suite aidez moi svp
merci à l'avance
Donnez votre avis
Utile
+0
plus moins
Re,

Bon s'il s'agit de créer des feuilles selon une liste et de faire les liens hypertexte il faut copier cette macro et la coller dans un module (ALt+F11 pour ouvrir éditeur VBA - Insertion - Module - copier coller macro dans page blanche - Modifier si nécessaire la référence de colonne si ce n'est pas la 2eme dans l’instruction Find puis dans les instructions faisnat référence à la colonne B (Range("B" & n)) - Fermer l'éditeur
Depuis la 1ere feuille avec la liste lancer la macro depuis Développeur dans le ruban - Macros - choisir créafeuilles et Exécuter

Sub créafeuilles()

   Dim Ligne As Long
   'Derniere ligne remplie en 2eme colonne
Ligne = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
'boucle de la ligen 2 à la derniere
    For n = 2 To Ligne
    ' valeur de la cellule
    nom = Range("B" & n)
    ' création nouvelle feuille en dernier
    Sheets.Add After:=Sheets(Sheets.Count)
    ' renomme nouvelle feuille
    Sheets(Sheets.Count).Select
    Sheets(Sheets.Count).Name = nom
    'selection 1ere feuille et mise en place lien hypertexte
    Sheets(1).Select
     Sheets(1).Range("B" & n).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'" & nom & "'!A1", TextToDisplay:=nom
    Next
End Sub


Cdlmnt
Via
Donnez votre avis
Utile
+0
plus moins
Ok parfait j'essaie ça
Merci
c'est gentil
Donnez votre avis
Utile
+0
plus moins
OK tiens moi au courant
Et si tu n'y arrives pas poste ton fichier sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici, je regarderai comment adapter la amcro à ton fichier
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 2 nov. 2017 à 00:15
voici mon fichier
https://mon-partage.fr/f/6dwW1OyU/

merci
Répondre
via55 8684Messages postés mercredi 16 janvier 2013Date d'inscription 19 novembre 2017 Dernière intervention - 2 nov. 2017 à 01:39
ton fichier en retour avec la macro pour créer les liens hypertexte
https://mon-partage.fr/f/UuYj6RNp/

Cdlmnt
Via
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 2 nov. 2017 à 13:27
wow super mais tu dois m'expliquer comment je dois faire car je dois faire 5 autres document comme ça avec chacune une nouvelle série de nombres pour chaque dept? et de plus je dois allez copier toutes mes feuilles mais dans chaque feuille il y à des = en référence au tableau principale et quand je copie des feuilles j'ai 7 cellules en B7 - E8-E9-E10-E11-E12 ET B35 Des feuilles que je dois tous refaire le = car en copiant ça copie la formule mais ce sera toujours la même ligne tu comprends merci Lyna
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour

Ton fichier en retour avec la macro qui crée toutes les feuilles et les liens hypertexte; avec formules dans les feuilles pour rapatrier les données
https://mon-partage.fr/f/daNXp4PO/

Cdlmnt
Via
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 3 nov. 2017 à 02:08
Ok je comprend donc en premier lieu j'enregistre une copie vierge du document ensuite je créer mes séquences 13-5500 avec plus de 500 feuilles par exemples j'enregistre ce document ensuite je reprend mon document vierge et là je créer ma 2 e séquence par exemple 22-2500 avec plus de 500 feuilles et j'enregistre ainsi de suite pour chaque département c'est bien ça? et si je dois rajouter des feuilles après les 500 est ce que je peux?
Répondre
via55 8684Messages postés mercredi 16 janvier 2013Date d'inscription 19 novembre 2017 Dernière intervention - 3 nov. 2017 à 11:14
Oui c'est ça, par contre si tu as déjà crée 500 feuilles à partir de 500 n°s puis qyue tu rajoutes des n°s et que tu relances la macro elle va buguer car elle repart du début et ne va pas pouvoir recréer des feuilles avec le même nom
Dans ce cas soit il faut que tu changes dans la macro le n° de ligne de départ dans les deux lignes d'instruction For n=15 to ligne, soit qu'on rajoute dans la macro une instruction pour faire demander avant de lancer la macro à partir de quelle ligne elle doit commencer le traitement
Que préfères tu ?
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 3 nov. 2017 à 13:31
ceci semble bien
lancer la macro à partir de quelle ligne elle doit commencer le traitement
Répondre
via55 8684Messages postés mercredi 16 janvier 2013Date d'inscription 19 novembre 2017 Dernière intervention - 3 nov. 2017 à 13:38
Ton fichier avec macro modifiée
https://mon-partage.fr/f/XmpqFZ0r/
Fais des essais et dis moi si c'est bon ou si tu vois d'autres améliorations à faire

Cdlmnt
Via
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 3 nov. 2017 à 14:21
C'est super wowwwww j'adore merci beaucoup
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour mon ami
merci de m'avoir sauvé la vie mais j'ai encore une demande spéciale je t'envoie mon fichier et j'ai mis un commentaire et regarde si tu comprends ma demande sinon reviens moi et j'essayerai de mieux m'expliquer.
Merci Lyna

https://mon-partage.fr/f/aom0JBVU/
Donnez votre avis
Utile
+0
plus moins
De plus tu peux voir dans le bas complètement de ma feuille Budget le total qui prend le montant du départ moins toutes les dépenses et leurs indique le budget restant ? et quand je rajoute des colonnes dans mon tableau de listes des réquisitions le liens hypertexte marchait pus alors j'ai été dans macro et j'ai changé le M pour mettre N mais je ne sais pas si tout est ok peux tu valider pour moi et de plus est-ce qu'il y à un moyen pour ne plus avoir les avertissement il faut faire 3 fois accepter ? merci de ton aide précieuse
Donnez votre avis
Utile
+0
plus moins
Bonjour Lyna

j'ai bien ouvert le fichier mais je ne trouve pas de commentaire
C'est quoi le souci ?
Ok pour N à la place de M, ça fonctionne
De quels avertissements pour lesquels il faut cliquer 3 fois parle-tu ?


via55 8684Messages postés mercredi 16 janvier 2013Date d'inscription 19 novembre 2017 Dernière intervention - 13 nov. 2017 à 20:10
C'est fou ça je n'ai aucun commentaire en B6 ni ailleurs !
Copie directement le commentaire dans une cellule et renvoie moi

Pour les avertissements ce doit être des liens hypertextes qui ne sont pas trouvé
c'est bizarre chez moi ça ne le fait pas

Vérifie pour chaque lien hypertexte que le chemin d'accès complet est correct (en passant la souris sur le lien il s'affiche)
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 13 nov. 2017 à 20:49
EST-CE QUE tu vois la feuille budget?
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 13 nov. 2017 à 21:01
https://mon-partage.fr/f/kuxNxYie/
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 13 nov. 2017 à 21:03
regarde à nouveau sous l'onglet budget
merci
Répondre
yg_be 3827Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 19 novembre 2017 Dernière intervention - 13 nov. 2017 à 21:50
bonsoir, suggestion pour mettre en c6:
=SUMIF(INDIRECT("'"&$A6&"'!$C15:$C33");C$3;INDIRECT("'"&$A6&"'!$F15:$F33"))

ou
=SOMME.SI(INDIRECT("'"&$A6&"'!$C15:$C33");C$3;INDIRECT("'"&$A6&"'!$F15:$F33"))

puis déplacer vers la droite et vers le bas
Répondre
Donnez votre avis
Utile
+0
plus moins
Voilà :
https://mon-partage.fr/f/AxFxzGL6/
J'ai mis 2 lignes de données dans la 1ere fiche, elles sont retranscrites dans la colonnes de leur code respectifs comme tu peux voir

Via
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 13 nov. 2017 à 21:52
Bin voyons donc comment tu as fait ça ??????
je ne connais pas la formule SIERREUR oufff tu es plus qu'un pro wow mercii
Répondre
via55 8684Messages postés mercredi 16 janvier 2013Date d'inscription 19 novembre 2017 Dernière intervention - 13 nov. 2017 à 22:03
Je t'explique :
au départ simple formule RECHERCHEV dans la même plage de chaque feuille basée sur le code
Pour faire changer le nom de la feuille selon le n° de requisition on reconstruit une référnece valide avec INDIRECT et en concatenant le n° de requisition qui est le nom de la feuille aussi et "'!C15:F33"
Enfin pour éviter l'#N/A dans une cellule lorsque RECHERCHEV ne trouve rien et mettre 0 à la place on utilise SIERREUR
Répondre
ange-lyna 37Messages postés mercredi 1 novembre 2017Date d'inscription 13 novembre 2017 Dernière intervention - 13 nov. 2017 à 22:36
ok je comprend merci beaucoup tu es mon sauveteur
lyna
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !