> Tous les forums > Forum Bureautique
 aide pour une macro
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
mayssa
  Posté le 31/10/2005 @ 08:29 
Aller en bas de la page 
Petite astucienne
Bonjour, Débutante en macro, je souhaite crée une macro qui marcherai en fonction du contenu de 2 cellules (origine : lycée ou collège et matière : math, francais...)et non pas en fonction des dites cellule (A1, A2). Ci dessous voici celle que j'ai produit sur le fichier suivant http://cjoint.com/?kFh7tl0OoB En fait ce que je n'arrive pas à gérer avec vba [triste]c'est lorque les infos contenues dans des cellules changent de place. Savez vous comment je peux manipuler une donnée dont la place est variable? Autre question, j'ai tenté d'insérer un bouton pour lancer cette procédure avec les conseils donnés sur ce forum(barre outil, personnalisé, commande, bouton personnalisé) mais au lieu de voir apparaître le bouton, j'ai l'impression que ça me relance la macro... si l'un d'entre vous sait ce que j'ai pas fait ou mal fait ça serait sympa de me dire quiquoiouquandcomment[chinois]. Merci d'avance. Sub copiertotaux() ' ' copiertotaux Macro ' Macro enregistrée le 31/10/2005 par < ' ' Touche de raccourci du clavier: Ctrl+p ' Range("h2").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("source").Select Range("h3").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Range("C3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("source").Select Range("h4").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Range("C4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("source").Select Range("h5").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Range("C5").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("source").Select Range("h6").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Range("C6").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("source").Select Range("h7").Select Application.CutCopyMode = False Selection.Copy Sheets("récap").Select Range("C7").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("C19").Select Application.CutCopyMode = False End Sub
Publicité
Marmotte18
 Posté le 31/10/2005 à 09:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour, Je ne comprends pas bien ce que tu essayes de faire. Peux-tu nous apporter plus de précisions avec éventuellement un exemple ? Une méthode pour créer un bouton pour exécuter ta macro est décrite dans le sujet "Bouton" du 25 octobre 2005 dans le présent forum.
galopin01
 Posté le 31/10/2005 à 10:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
bonjour, nomme tes cellules avec Insertion / Nom / Définir Nom dans le classeur = Orig1 (par exemple) puis code ainsi : Sheets("source").Range("Orig1").Copy Sheets("récap").Range("C3").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Le nom de la cellule la suit quelque soit sa place. A+

Modifié par galopin01 le 31/10/2005 10:55
mayssa
 Posté le 31/10/2005 à 19:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
Merci à tous les 2 pour votre intervention. Je n'ai pas été très clair je crois: en colonne A: j'ai "collège"(A2) "lycée" (A5)"pensionnat" (A8) en colonne B : j'ai les matières qui apparaissent plusieurs fois car elles sont utiles pour le champ "collège" et "lycée" j'ai donc "math"(B2 ainsi qu'en B5 et également en B8) "francais"(en B3, B6 et B9) ect pour les autres matières Ce que je souhaite faire via VBA, c'est coller automatiquement le total des élèves qui apparaît en colonne "F" dans un fichier récap qui lui ne bouge pas. Or, je ne suis pas sur que "collège apparaitra en "A2" idèm pour "lycée" et le total. Peut-on insérer une condition avant de lancer la macro qui colle les valeurs?
galopin01
 Posté le 31/10/2005 à 20:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonsoir, Si ce n'est pas toi qui remplit la feuille source alors évidement il est difficile de nommer les cellules. A première vue, avec les éléments en notre possession je ne vois pas ce qu'on peut faire si tu ne maîtrises pas la feuille source. Je flaire un problème du genre INDEX.EQUIV Mais il faudrait bien plus qu'un aperçu pour t'être utile sur ce type de problème. De plus dans ta macro tu fais des collages de la colonne H vers la colonne C et plus bas dans le texte tu nous parles de la colonne F. Difficile de s'y retrouver. Par ailleurs à l'avenir ne multiplie pas les questions dans un sujet. Ca n'aide pas à la compréhension : on se demande s'il y a un rapport ou pas... Bref, tel que présenté dans le fichier joint, difficile pour ma part de te proposer quoi que ce soit. A+
Marmotte18
 Posté le 01/11/2005 à 06:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour, Afin que tout le monde comprenne, j'ai mis en image un exemple de la situation [img]http://img498.imageshack.us/img498/5918/source1in.jpg[/img] [img]http://img498.imageshack.us/img498/7452/rcap1sc.jpg[/img]
Marmotte18
 Posté le 01/11/2005 à 07:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour Cette macro a été établie en considérant qu'il n'y a que
  1. 2 sortes d'établissement (collège et lycée)
  2. 3 matières (math, français, anglais)
Il faut donc l'adapter en fonction du besoin. [code]Sub ConstruitRécap() Dim TabRéc(3, 3), I1 As Byte, I2 As Byte Dim Lig As Long Dim LigMax As Long, ColMax As Integer, Cellule As Range Dim Etab As String, Matière As String 'Définition de la taille de la feuille source '-------------------------------------------- Sheets("source").Select Cells.SpecialCells(xlTextValues).Select For Each Cellule In Selection If Cellule.Row > LigMax Then LigMax = Cellule.Row If Cellule.Column > ColMax Then ColMax = Cellule.Column Next Range("A1").Select 'Remplissage du tableau '---------------------- For Lig = 2 To LigMax If Cells(Lig, 1) <> "" Then Etab = LCase(Cells(Lig, 1)) If Etab = "collège" Then I1 = 1 If Etab = "lycée" Then I1 = 2 If Cells(Lig, 2) <> "" Then Matière = LCase(Cells(Lig, 2)) If Matière = "math" Then I2 = 1 If Matière = "français" Then I2 = 2 If Matière = "anglais" Then I2 = 3 TabRéc(I1, I2) = Sheets("Source").Cells(Lig, 8) Next Lig 'Ecriture des résultats '---------------------- Sheets("récap").Cells(2, 3) = TabRéc(1, 1) 'collège - math Sheets("récap").Cells(3, 3) = TabRéc(1, 2) 'collège - français Sheets("récap").Cells(4, 3) = TabRéc(1, 3) 'collège - anglais Sheets("récap").Cells(5, 3) = TabRéc(2, 1) 'lycée - math Sheets("récap").Cells(6, 3) = TabRéc(2, 2) 'lycée - français Sheets("récap").Cells(7, 3) = TabRéc(2, 3) 'lycée - anglais End Sub[/code]
mayssa
 Posté le 06/11/2005 à 21:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
Galopin 1, en effet, je m'étais planté sur le descriptif en parlant de la colonne F, m'aiguiller vers la fonction "index equiv" est une solutio constructive que j'envisagerai si je me dépatouille pas avec le propo faite par Marmotte18 que je remercie également au passage.à bientôt.
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
199,99 €Ecran ultra large LG 29 pouces (2560x1080px, IPS, FreeSync) à 199,99 €
Valable jusqu'au 20 Janvier

Boulanger propose actuellement l'écran 29 pouces LG 29WL500 à 199,99 € livré gratuitement alors qu'on le trouve à partir de 250 € ailleurs. Cet écran ultra large est au format 21/9 et offre une résolution de 2560 x 1080 pixels avec une dalle IPS compatible FreeSync. Avec lui, vous pourrez bénéficier d'une plus grande immersion dans les jeux et les films.


> Voir l'offre
12,90 €Windows 10 Pro 32/64 bits OEM à 12,90 €
Valable jusqu'au 21 Janvier

Le vendeur sérieux Digital FR propose sur Amazon la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 12,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
9,99 €Adaptateur Bluetooth USB TP-Link UB400 à 9,99 €
Valable jusqu'au 20 Janvier

Amazon fait une promotion sur l'adaptateur Bluetooth USB TP-Link UB400 qui passe à 9,99 €. Cet adaptateur à brancher sur un port USB va vous permettre d'ajouter le bluetooth à votre ordinateur et d'utiliser ensuite sans fil vos périphériques bluetooth : souris, clavier, casque, manette, téléphone, ...


> Voir l'offre

Sujets relatifs
Aide pour macro
Besoin d'aide pour bug dans macro calc
aide pour une macro
aide pour une macro
Besoin d'aide pour faire une Macro
aide pour finaliser Macro Excel
Artisan recherche aide pour modif macro excel
Besoin d'aide pour créer un macro s.v.p.
Besoin d'aide pour faire un test antivirus
macro pour comparer 2 listes
Plus de sujets relatifs à aide pour une macro
 > Tous les forums > Forum Bureautique