Aide vba macro excel
wow40
-
Gord21 Messages postés 918 Date d'inscription Statut Membre Dernière intervention -
Gord21 Messages postés 918 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite créer une macro excel pour faire un suivi des machines à mon travail.
J'ai 40 machines donc 40 feuilles excel.
Je souhaiterais créer une feuille supplémentaire me permettant de créer une vue globale.
Sur cette feuille vue globale, dans un tableau, je voudrais reporter la dernière ligne de la colonne(rempli chaque jour manuellement par divers opérateurs) des 40 autres feuilles.J'espère que j'ai été clair.
Je débute dans les macros donc si quelqu'un pouvait m'aider.Ce serait sympa.
Voilà ce que j'ai concocté en flanant sur internet mais ça n'a pas l'air de marcher.
Sheets("A1").Select
Range("E100").End(xlUp).Select
Selection.Copy
Sheets("Salle 1").Select
Range("B1").Select
Selection.Paste
Merci de votre aide
Je souhaite créer une macro excel pour faire un suivi des machines à mon travail.
J'ai 40 machines donc 40 feuilles excel.
Je souhaiterais créer une feuille supplémentaire me permettant de créer une vue globale.
Sur cette feuille vue globale, dans un tableau, je voudrais reporter la dernière ligne de la colonne(rempli chaque jour manuellement par divers opérateurs) des 40 autres feuilles.J'espère que j'ai été clair.
Je débute dans les macros donc si quelqu'un pouvait m'aider.Ce serait sympa.
Voilà ce que j'ai concocté en flanant sur internet mais ça n'a pas l'air de marcher.
Sheets("A1").Select
Range("E100").End(xlUp).Select
Selection.Copy
Sheets("Salle 1").Select
Range("B1").Select
Selection.Paste
Merci de votre aide
A voir également:
- Aide vba macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
Bonsoir,
Je pense que ton premier soucis est :
à remplacer par (par exemple) :
Sinon, pour t'aider, tu veux reporter la dernière ligne des colonnes (je suppose la colonne E) mais à quel endroit veux tu les reporter ? A priori, tu commences en B1 mais après, B2, B3, ... ou C1, D1, ...
Je pense que ton premier soucis est :
Sheets("A1").Select
à remplacer par (par exemple) :
Sheets("Feuil1").Select
Sinon, pour t'aider, tu veux reporter la dernière ligne des colonnes (je suppose la colonne E) mais à quel endroit veux tu les reporter ? A priori, tu commences en B1 mais après, B2, B3, ... ou C1, D1, ...
Bonjour Gord21,
En fait j'ai 40 feuilles du nom des machines,A1àA10 B1àB10 C1àC10 D1àD10
Tu crois que cela fait une interaction avec le nom des cellules?
Je voudrais les reporter de B1à B20 et de D1àD20
Voilà si tu as un idée?
J'essairais ce soir de changer le nom de la feuille A1 par autre chose pour voir.
Merci
En fait j'ai 40 feuilles du nom des machines,A1àA10 B1àB10 C1àC10 D1àD10
Tu crois que cela fait une interaction avec le nom des cellules?
Je voudrais les reporter de B1à B20 et de D1àD20
Voilà si tu as un idée?
J'essairais ce soir de changer le nom de la feuille A1 par autre chose pour voir.
Merci
Bonjour,
Non, inutile de modifier le nom de tes onglets, ça m'a parut suspect sur le coup car d'habitude A1 est la référence d'une cellule.
Juste pour confirmation, tu veux copier la dernière cellule de la colonne E des onglets A1 à B10 dans les cellules B1 à B20 et la dernière cellule de la colonne E des onglets C1 à D10 dans les cellules D1 à D20. C'est bien ça ?
Non, inutile de modifier le nom de tes onglets, ça m'a parut suspect sur le coup car d'habitude A1 est la référence d'une cellule.
Juste pour confirmation, tu veux copier la dernière cellule de la colonne E des onglets A1 à B10 dans les cellules B1 à B20 et la dernière cellule de la colonne E des onglets C1 à D10 dans les cellules D1 à D20. C'est bien ça ?
Re,
Oui c'est tout à fait ça.
J'ai changé le nom de la première feuille, la macro se lance mais elle s'arrête sur Selection.Paste et me dit que cette action est impossible.
erreur 438 Propriété ou méthode non géré.
Voilà si tu as une idée
Oui c'est tout à fait ça.
J'ai changé le nom de la première feuille, la macro se lance mais elle s'arrête sur Selection.Paste et me dit que cette action est impossible.
erreur 438 Propriété ou méthode non géré.
Voilà si tu as une idée
J'ai mis pastespecial à la place de paste cela marche mais il faut que j'exécute à chaque fois la macro si je rajoute une ligne.Est_ce qu'une macro ne peut pas rester active sans avoir besoin la redémarrer?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Voici le code, il te suffit de le coller dans la feuille de code de ThisWorkbook de ton classeur.
Remarques :
- Dans ce code, l'onglet récapitulatif s'appelle Rapport
- Tu ne pourras pas avoir plus de 100 valeurs dans tes colonnes E (j'ai repris ton E100 car je pense que tu l'a mis volontairement)
Si tu as des questions, n'hésite pas.
Voici le code, il te suffit de le coller dans la feuille de code de ThisWorkbook de ton classeur.
Remarques :
- Dans ce code, l'onglet récapitulatif s'appelle Rapport
- Tu ne pourras pas avoir plus de 100 valeurs dans tes colonnes E (j'ai repris ton E100 car je pense que tu l'a mis volontairement)
Si tu as des questions, n'hésite pas.
Option Explicit Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ' ' Déclaration des variables '========================== Dim Liste_onglets_1() ' Liste des onglets qui contiennent les valeurs sources 1 Dim Liste_onglets_2() ' Liste des onglets qui contiennent les valeurs sources 2 Dim Cell_debut_1 As Range ' Première cellule où seront copiées les valeurs de la source 1 Dim Cell_debut_2 As Range ' Première cellule où seront copiées les valeurs de la source 2 Dim i As Long ' Variable utilisée pour les boucles ' ' Initialisation de la liste d'onglets '===================================== Liste_onglets_1 = Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", _ "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10") Liste_onglets_2 = Array("C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", _ "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10") Set Cell_debut_1 = ThisWorkbook.Worksheets("Rapport").Range("B1") Set Cell_debut_2 = ThisWorkbook.Worksheets("Rapport").Range("D1") ' ' Mise à jour des valeurs '======================== ' On Error Resume Next ' ' Parcours des onglets définis dans la liste 1 '--------------------------------------------- For i = 0 To UBound(Liste_onglets_1) Cell_debut_1.Offset(i, 0).Value = ThisWorkbook.Worksheets(Liste_onglets_1(i)).Range("E100").End(xlUp) Next i ' ' Parcours des onglets définis dans la liste 2 '--------------------------------------------- For i = 0 To UBound(Liste_onglets_2) Cell_debut_2.Offset(i, 0).Value = ThisWorkbook.Worksheets(Liste_onglets_2(i)).Range("E100").End(xlUp) Next i On Error GoTo 0 ' End Sub