Aide macro
Résolu
Ecrelinf
Messages postés
36
Statut
Membre
-
Ecrelinf Messages postés 36 Statut Membre -
Ecrelinf Messages postés 36 Statut Membre -
Bonjour à tous,
Je travaille sur deux feuilles d'un même classeur.
Voilà ce que je voudrais faire :
Si la valeur en B de la feuille 1 est égale à la valeur en A de la feuille 2 ET que la valeur en G de la feuille 2 est égale à 1 alors écrire "Ok" dans la colonne AC de la feuille 1.
Il y a deux difficultés à ajouter à ça :
- Les valeurs en B de la feuille 1 et celles en A de la feuille 2 ne sont pas rangées dans le même ordre.
- Les valeurs en B de la feuille 1 sont présentes une fois dans la colonne alors que dans la colonne A de la feuille 2, on les retrouve plusieurs fois.
J'ai fait ce programme là :
Lorsque j'exécute, il ne se passe rien, pas de message d'erreur, mon classeur ne semble pas modifié, RIEN. :(
Donc si quelqu'un a une idée, je vous remercie d'avance du temps que vous voudrez bien me consacrer (sachant que je suis encore débutant ^^)
Bonne journée et bon week end !
Ecrelinf
Je travaille sur deux feuilles d'un même classeur.
Voilà ce que je voudrais faire :
Si la valeur en B de la feuille 1 est égale à la valeur en A de la feuille 2 ET que la valeur en G de la feuille 2 est égale à 1 alors écrire "Ok" dans la colonne AC de la feuille 1.
Il y a deux difficultés à ajouter à ça :
- Les valeurs en B de la feuille 1 et celles en A de la feuille 2 ne sont pas rangées dans le même ordre.
- Les valeurs en B de la feuille 1 sont présentes une fois dans la colonne alors que dans la colonne A de la feuille 2, on les retrouve plusieurs fois.
J'ai fait ce programme là :
Dim lignef1 As Long 'la variable "ligne" de la feuille1
Dim lignef2 As Long 'la variable "ligne" de la feuille2
lignef2 = 2
With Worksheets("Feuille1")
For lignef1 = 2 To j 'j est le nombre de ligne de mon tableau de la feuille1
If Worksheets("Feuille1").Range("B" & lignef1).Value = Worksheets("feuille2").Range("A" & lignef2).Value And Worksheets("Feuille2").Range("G" & lignef2).Value = "1" Then
Worksheets("feuille1").Range("AC" & lignef1).Value = "Ok"
lignef2 = lignef2 + 1
End If
Next lignef1
End With
Lorsque j'exécute, il ne se passe rien, pas de message d'erreur, mon classeur ne semble pas modifié, RIEN. :(
Donc si quelqu'un a une idée, je vous remercie d'avance du temps que vous voudrez bien me consacrer (sachant que je suis encore débutant ^^)
Bonne journée et bon week end !
Ecrelinf
A voir également:
- Aide macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
3 réponses
Bonjour Ecrelinf,
Il faut imbriquer les deux boucles For (une pour les lignes de la feuille 1, l'autre pour les lignes de la feuille 2)... ou utiliser une formule dans la feuille 1... ou utiliser une macro utilisant une fonction avec WorksheetFunction....
A+
Il faut imbriquer les deux boucles For (une pour les lignes de la feuille 1, l'autre pour les lignes de la feuille 2)... ou utiliser une formule dans la feuille 1... ou utiliser une macro utilisant une fonction avec WorksheetFunction....
A+
Salut,
Puis-je me permettre de jeter un oeil sur ton fichier ?
Peux tu y supprimer des données nominatives ou confidentielles s'il y a, l'héberger sur cjoint et me poster le lien en réponse à ce message ?
Merci d'avance.
Puis-je me permettre de jeter un oeil sur ton fichier ?
Peux tu y supprimer des données nominatives ou confidentielles s'il y a, l'héberger sur cjoint et me poster le lien en réponse à ce message ?
Merci d'avance.