× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Fonction Si ou Macro ?Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
maryloo2005
  Posté le 22/03/2015 @ 18:22 
Aller en bas de la page 
Astucienne

Normal 0 21 false false false FR X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tableau Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri",sans-serif; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-fareast-language:EN-US;}

Bonjour,

J'ai deux fichiers Excel différents :

- l'un ou il y a toutes les informations du salarié (la base de données que je vous joins avec cjoint), http://cjoint.com/?0CwsH2zr7bt

- le deuxième, ce sera un tableau uniquement composé des personnes bénéficiaires du RSA. Je ne l'ai pas encore puisqu'il est l'objet de ma question.

Donc il faudrait que je trouve une fonction SI ou une Macro (je pense), qui me permettrait de dire :

"si le salarié est au RSA, alors, recopier sa ligne d'information dans le 2e tableau, sinon ne rien faire).

SI dans la cellule (colonne C du 1er tableau) "bénéficiaire du RSA" il y a écrit 1; alors reporter la ligne du salarié; sinon ne rien faire.

Mais même si j'arrive à faire cela, imaginons que j'aie 150 salariés : le premier et le dernier sont au RSA (c'est impossible, mais c'est un exemple), alors, il y aura un blanc entre le 1er et le 150ème salarié (c'est à dire un trou de 149 lignes) ? Il faudrait que les lignes se suivent.

En fait, je ne sais pas encore si je veux créer un 2e tableau ou une nouvelle feuille dans le premier classeur. Que me conseillez-vous ?

Je sais faire des fonctions SI mais je ne sais pas faire les macros. Pouvez-vous m'aider svp ? Merci d'avance.

Mary

Publicité
ferrand
 Posté le 22/03/2015 à 20:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Est-ce qu'il faut renuméroter la colonne A ? En continu, s'il s'agit de numéros d'ordre ?

Ou bien supprimer la formule en A1 ? Qui se trouve invalidée.

Pour être plus explicite, il y a le choix entre beaucoup de solutions et je choisirais volontiers parmi les plus simple le schéma suivant :

- Copie feuille dans un nouveau classeur

- Renommage de la feuille : quel nom ?

- Boucle ascendante pour supprimer les lignes ne correspondant pas à un RSA

- Enregistrement du classeur : quel nom ?

Donc, la ligne 166 étant non RSA, elle est supprimée, d'où erreur #REF! de la formule. Si elle ne l'était pas, il y aurait aussi erreur puisque les numéros d'ordre ne sont plus consécutifs.

Si on garde la formule en A1, il faut la réécrire. Et il faut renuméroter. D'où ma question.

ferrand
 Posté le 22/03/2015 à 21:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

En l'absence d'indication plus précise, je suggère de remplacer dans ta formule en A1, A166 par A171. Et en A171, mettre la formule : =NB(A6:A170). Cela aura pour effet de rendre la formule en A1 résistante aux modifications. (Tu peux masquer l'affichage en A171 par couleur de police blanc).

La macro pour créer le nouveau classeur :

Sub DupliquerClasseur_RSA()
Dim i%, n%, c as Range
Worksheets("Général").Copy
With ActiveWorkbook.Worksheets(1)
.Name = "RSA"
n = .Range("C" & .Rows.Count).End(xlUp).Row
For i = n To 7 Step -1
If IsNumeric(.Cells(i, 1).Value) And .Cells(i, 3).Value = "" _
Then .Rows(i).Delete
Next i
i = 0
n = .Range("C" & .Rows.Count).End(xlUp).Row
For Each c In .Range("C7:C" & n).Cells
If c.Value = 1 Then
i = i + 1
c.Offset(0, -2).Value = i
End If
Next c
End With
ActiveWorkbook.SaveAs "Copie_RSA.xlsx"
End Sub

Remplacer les mentions en rouge par les noms souhaités. Le nouveau classeur sera enregistré dans le répertoire courant (qui devrait être celui du classeur initial s'il n'a pas été modifié depuis son ouverture) : Si on veut l'enregistrer ailleurs, il faut alors indiquer le chemin du dossier.

"chemin\nomclasseur"

ou ThisWorkbook.Path & "\nomclasseur" (pour le dossier du classeur initial si le répertoire courant peut être différent)

http://cjoint.com/?ECwvE5Yb5Mz

NB- J'ai opté pour la renumérotation, 2e partie de la macro (de i = 0 à Next c). Si on ne doit pas renuméroter, il suffit de supprimer cette partie du code. La formule continuera cependant à donner le bon résultat (car ne dépend plus du dernier numéro).



Modifié par ferrand le 22/03/2015 21:20
maryloo2005
 Posté le 22/03/2015 à 21:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Merci beaucoup Ferrand.

Je vais regarder tout cela et sûrement avoir besoin qu'on me guide pour installer cette macro car je n'y connais pas grand chose en macro. Désolée...

Bonsoir et encore grand merci.

Mary

ferrand
 Posté le 22/03/2015 à 22:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Une macro, ce n'est que du texte composé d'un agencement de mots-clé... La recette de Galopin est toujours utile :

https://forum.pcastuces.com/recette_de_cuisine__excel_vba-f23s5963.htm

ferrand
 Posté le 26/03/2015 à 11:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Si tout se poursuit bien, continue ! Si tu rencontres quelques difficultés, reviens, on te fera un pas à pas illustré pour aller au bout de la procédure...

maryloo2005
 Posté le 26/03/2015 à 11:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Bonjour,

Je me suis fait aider. Merci, tout va bien. C'est super sympa de ta part.

Bonne journée.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
24,99 €Ensemble clavier + souris sans fil Logitech MK270 à 24,99 €
Valable jusqu'au 28 Octobre

Amazon fait une promotion sur l'ensemble clavier + souris sans fil Logitech MK270 qui passe à 24,99 € alors qu'on le trouve habituellement autour de 35 €. Cet ensemble est composé d'un clavier sans fil Logitech avec des touches silencieuses et d'une souris sans fil adaptée à la forme de la main qui convient aux droitiers comme aux gauchers. Un seul récepteur USB vous permettra d'utiliser ces 2 périphériques sans fil. La livraison en point relais est gratuite.


> Voir l'offre
55 €Microphone USB Bird UM1 à 55 €
Valable jusqu'au 29 Octobre

Amazon fait une vente flash sur le Microphone USB Bird UM1 qui passe à 55 € alors qu'on le trouve ailleurs à partir de 69 €. La livraison est gratuite. Le Bird UM1 est un micro de studio d'excellente qualité avec interface USB intégrée. C'est une solution idéale et tout-en-un qui évite d'avoir à acheter un préampli ou une interface audio supplémentaire.  Idéal pour le studio, YouTube ou l'animation de votre blog.


> Voir l'offre
36,99 €Gel hydroalcoolique 5L (70% d'alcool, fait en France) à 36,99 €
Valable jusqu'au 28 Octobre

Amazon propose actuellement le bidon de 5 L de gel hydroalcoolique (70% d'alcool, fait en France) à 36,99 € livré gratuitement (7,40 € / litre). De plus, si vous êtes un membre Amazon Prime, un coupon de réduction de 10 € vous sera offert pour le Prime Day (le 13 et 14 Octobre prochain).


> Voir l'offre

Sujets relatifs
(Macro Excel) Sélectionner cellule en fonction de sa couleur
Appeler une macro via une touche de fonction
Fonction et macro
Macro qui ouvrirais la fonction rechercher
Macro Excel 4
Macro...Protéger feuille
2 pages par feuille dans macro excel
Fonction RANG
Comment choisir la "fonction" de mes mails ?
erreur macro
Plus de sujets relatifs à Fonction Si ou Macro ?
 > Tous les forums > Forum Bureautique