• Initiateur de la discussion Initiateur de la discussion Michelle2227
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Michelle2227

Guest
Bonjour,
je suis une vraie debutante dans le domaine des macro .

je souhaiterais créer une macro qui verifier dans une colonne si une cellule est vide et lui donner la valeur correspondante d'une autre colonne
je vais faire simple et mettre la condition

Si dans la colonne N une cellule est vide et que celle ci correspond à "VN" dans la colonne U alors lui attribuer ceux à quoi il correspond dans la colonne S

Si VH_année(N)="" et Type_VH(U)="VN" alors
VH_année= CT_Année(S)
je vous join le fichier pour que vous voyez

Bien cordialement
 

Pièces jointes

Re : Macro cellule vide

Merci d'avoir repondu
en fait la macro devrai servir pour tout le temps
je m'explique:
c'est un flux mensuel extrait d'une requete Business Object(la requete est deja faite il suffit au gestionnaire d'actualiser) ensuite il l'exporte sous forme de fichier Excel(comme celui que j'ai joint à mon message) et ensuite les manipulations il les faisait a la main parce qu'il ne s'y connaissait pas.
Ce qu'il m'a demandé c'est de faire une macro qui fasse les manipulation automatiquement (c'est à dire la question a laquelle tu as donné la solution)
donc moi j'aurais voulu savoir si justement le mois prochain lorsque il fera son extraction et que il la copiera dans le fichier "Extractiion_Brute_Flux_Requête_" est ce que la macro pourra etre executer et lui donner le meme resultat?
Et comment creer un raccourcis dans les macros?

Merci
 
Re : Macro cellule vide

Bonsoir,

le mois prochain lorsque il fera son extraction et que il la copiera dans le fichier "Extractiion_Brute_Flux_Requête_" est ce que la macro pourra etre executer et lui donner le meme resultat?
Comme indiqué dans mon message précédent, si "il" copie dans la feuille existante (après en avoir supprimé le contenu) ... la feuille elle-même existe toujours et donc la macro aussi!?

Pour créer un raccourci qui exécute une macro: ouvrir le classeur et appuyer sur Alt+F8. dans la boîte de dialogue, sélectionner la macro à laquelle tu veux associer ton raccourci, puis Options... ... "yapûka" choisir! (Penser à ne pas opter pour une combinaison que toi ou l'utilisateur du fichier utilisez comme raccourci "normal")

Quant à une "fonction" Sheet ... je ne la connais pas ... tu peux préciser le contexte?
 
Re : Macro cellule vide

Bonjour Modeste
je constate que tu es mon sauveur et en meme temps mon professeur de macro
En fait il voudrais aussi une macro pour vider le fichier et ensuite copier les données et excuter la macro.
Pour sheet je t'envoie un exemple pour que tu comprenne
 
Re : Macro cellule vide

Et pour vider justement voilà un code que j'ai essayer de faire avec justement la fonction sheet tu comprendras mieux peut être

Sub Vider()

Sheets("DATA").Select
Cells.Select
Selection.ClearContents
Range("A1").Select

Sheets("Menu").Select
Range("A1").Select
End Sub

J'espere que j'ai bien expliquer
 
Re : Macro cellule vide

Bonjour,

Créer une macro qui efface le contenu de toute la feuille, pourquoi pas ... mais faire Ctrl+A, suivi de 'Delete' n'irait pas aussi vite!?

Le petit bout de code que tu livres permet de constater (s'il s'agit bien du même fichier!?) que ton classeur contient plusieurs feuilles. Dans ton exemple de départ, il n'y en avait qu'une; la macro ne pouvait donc s'exécuter que dans la seule feuille présente. S'il y en a plusieurs, il conviendrait d'être prudent et de préciser, dans le code, sur quelle feuille la macro doit agir.

Dans ton même petit bout de code, si tu places le curseur de ta souris sur le terme 'Sheets' et que tu appuyes sur F1, l'aide en ligne devrait te fournir bien plus d'explications que je ne pourrais le faire 😀 (ce qui est certain, c'est que tu dois prendre l'habitude d'y ajouter un 's' final)
Ce code a sans doute été généré par l'enregistreur de macros. Il faut, en règle générale, procéder ensuite à un peu "d'élagage". Tes 3 premières lignes peuvent aussi s'écrire:
Code:
Sheets("DATA").Cells.ClearContents

Si tu as besoin d'un coup de main pour adapter le premier code, pense à préciser le nom de la feuille ("DATA"?)
 
Re : Macro cellule vide

Oui je pense que c'est plus facile comme tu as dis et on ne se prendra pas la tête à faire un code.
Oui et je l'ai preciser dans un fichier instruction et sa fonctionne très bien.
Quand la macro qu'on a fait aussi et merci pour ton
j'en ai une deuxieme a faire pour affecter les gestionnaire au bon poste. je t'envoie que le fichier final que je dois avoir avec un bout du code que j'ai fait.

et voila mon bout de code

Sub Traitement()


Sheets("Menu").Select
AA = Cells(5, 2).Value

Sheets("DATA").Select
Range("A1").Select
Max = Range("A1").CurrentRegion.Rows.Count
Range("Q1").Select
ActiveCell.FormulaR1C1 = "GIR DTCA"
Range("Q2").Select
ActiveCell.FormulaR1C1 = "=+VLOOKUP(RC[-4],Correspondance!R1C1:R100C4,2,FALSE)"
Range("Q2").Select
Selection.AutoFill Destination:=Range("Q2:Q" & Max)
Range("R1").Select
ActiveCell.FormulaR1C1 = "Gestionnaire AVE"
Range("R2").Select
ActiveCell.FormulaR1C1 = "=+VLOOKUP(RC[-5],Correspondance!R1C1:R100C4,4,FALSE)"
Range("R2").Select
Selection.AutoFill Destination:=Range("R2:R" & Max)
Columns("Q:R").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select


'erreur département
Columns("Q:R").Select
Range("R1").Activate
Selection.Replace What:="#N/A", Replacement:="ERREUR DEPARTEMENT", LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("A1").Select

'erreur année véhicule #1

Columns("N").Select
Selection.Replace What:="", Replacement:="3000", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("A1").Select


'première condition
For i = 2 To Max

If Cells(i, 14).Value < AA And Cells(i, 2).Value = Cells(i, 17).Value Then
Cells(i, 2).Value = Cells(i, 18).Value

End If

Next i

'seconde condition
For j = 2 To Max

If Cells(j, 12).Value < 1000 And Cells(j, 7).Value = "DJ1B" And Cells(j, 2).Value = Cells(j, 17).Value Then
Cells(j, 2).Value = Cells(j, 18).Value

End If

Next j


'erreur année véhicule #2

Columns("N").Select
Selection.Replace What:="3000", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("A1").Select





End Sub
 

Pièces jointes

Re : Macro cellule vide

Bonsoir,

Je veux bien faire des efforts pour comprendre quand tout n'est pas très clair, mais là ... je ne te suis plus!

Tu parles d'erreur ... mais quelle erreur?
Il y a des phrases que tu commences ... et dont je cherche toujours la fin!?
Quel rapport entre le code dans ton avant-dernier message et le fichier du dernier message?
 
Re : Macro cellule vide

Bonjour
1- c'est un code que j'ai fait pour affecter les gestionnaire à leur doomaine et la piece jointe que j'ai ajouter c'est en fait le resultat finale de la macro.
2- je pensais que avec le resultat final qui est en piece jointe de mon avant dernier message tu comprendrais.
en fait l'erreur se trouve au niveau de la colonne Qet R.

j'espere que tu as compris au moins quelque chose.

cordialement
 
Re : Macro cellule vide

Bonjour Michelle2227,

Petit rappel: les gens qui répondent sur ce forum, le font de manière bénévole. C'est donc, en général, plutôt aux demandeurs de faire l'effort de bien expliquer, de mettre une pièce jointe qui illustre correctement le problème, etc. Dans le cas présent, il faut reprendre le code de ton message #22, pour l'injecter dans le fichier de ton message #23 😕
Tu te souviendras que dans mon message #21, j'avais conseillé de préciser -dans le code- la feuille à laquelle la macro devait s'appliquer ... je n'en vois pas trace!?
Dans le même message, je suggérais aussi d'élaguer un peu le code fourni par l'enregistreur de macro (en donnant un petit exemple). Le code que tu proposes est encore "truffé" de ".Select" inutiles.

Pour ton erreur en colonne Q, elle est due au fait que la colonne M contient des nombres ... précédés d'une apostrophe (résultat de l'extraction, sans doute). En corrigeant ta formule en Q2 de la manière suivante, il me semble que ce devrait être mieux:
=+RECHERCHEV(M2*1;Correspondance!$A$1:$D$100;2;FAUX)
 
Re : Macro cellule vide

Desolé de ne pas expliquer mieux!
j'en prend note pour la prochaine fois.
pour la premiere macro comme je te l'ai elle fonctionne correctement
j'ai su l'injecter dans le fichier déja existanr(car un autre est passer avant moi) donc j'ai essayer d'adapter les codes que tu m'as fourni à ce qu'il a fait et ce la marche parfaitement.

pour ce que est du code (très long) que j'ai envoyé c'est celui de mon précedent collègue et j'essai aussi d'adapter les nouveaux code afin de fournir un resultat satisfaisant.

En effet je suis en train de faire une deuxieme macro qui s'appliquera sur la meme feuille c'est pourquoi j'ai joint tout les fichier utilisé.

cordialement en esperant que c'est mieux clair qu'avant
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour