Remplacement de cellules avec conditions

Résolu/Fermé
viandax Messages postés 2 Date d'inscription lundi 7 juillet 2014 Statut Membre Dernière intervention 10 juillet 2014 - 7 juil. 2014 à 23:36
viandax Messages postés 2 Date d'inscription lundi 7 juillet 2014 Statut Membre Dernière intervention 10 juillet 2014 - 10 juil. 2014 à 15:52
Bonjour,

Voilà je me suis pas très (pour ne pas dire pas du tout) compétent sur VBA.

Pour faire simple : j'ai un classeur excel comportant 2 feuilles :

-la première comporte des objets listés en colonne (colonne "n"), sur cette même feuille la colonne "n-1" correspond à un numéro propre à chaque objet de la colonne "n", pour finir une colonne "n+1" comporte soit un numéro soit la lettre f.

-la seconde feuille comporte une colonne "v" listant une partie des objets de la première feuille (tri effectué par une macro : ne sont copiés que les objets ayant un f à la colonne "n+1"), il y a toujours la colonne "v-1" comportant le numéro propre a chaque objet, et la colonne "v+1" avec donc le f .

j'espère être assez clair et précis...

Sur cette feuille, je remplace manuellement le f par un numéro pour chaque objet.

Pensez-vous possible de remplacer le f de la colonne "n+1" de la première feuille par le numéro rentré manuellement en "v+1" de la deuxième feuille, et ceci juste pour les éléments présents sur la deuxième feuille ?

Tout début de piste est bon à prendre, je ne connais absolument pas les fonctions et possibilités de VBA... Merci par avance !

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 8/07/2014 à 08:18
Bonjour

plutôt que d'écrire "pour faire simple" sois précis: il aurait été utile de fournir le nom des colonnes réelles et le nom des feuilles concernées surtout si tu ne connais pas VBA

donc j'ai utilisé la feuille1 colonnes ABC
transférée en feuille2 colonnes CDE changement de "f" dans colonne E
à toi d'adapter

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim numero As Integer, Lig As Integer
If Target.Column = 5 And Target <> "f" Then '(5<--> E)
numero = Target.Offset(0, -2)
With Sheets(1)
Lig = .Columns("A").Find(numero, .Range("A30000"), xlValues).Row
.Cells(Lig, "C") = Target
End With
End If
End Sub

comment installer ?
faire un "copier" cette macro
clic droit sur le nom de l'onglet de la feuille concernée( feuil2) (en bas de l'écran)
visualiser le code
coller
-------------------------------------------------------------------------------------------
Si les macros ne sont pas activées
xL<2007
cocher menu  options-macros-sécurité- niveau moyen
XL>=2007
1/ Si l'onglet Développeur n'apparait pas dans le ruban:
Cliquer sur le bouton Office,
puis sur le bouton Options Excel.
Cliquer sur le menu Standard.
Cocher l'option Afficher l'onglet Développeur dans le ruban.
Cliquer sur le bouton OK pour valider.
2/ activer les macros
Cliquer sur le bouton Office,
puis sur le bouton Options Excel.
Cliquer sur centre de gestion de confidentialité
puis sur param^tre du centre de gestion de la confidentialité
puis cocher le bouton radio activer les macros
Cliquerz sur le bouton OK pour valider.
ton Excel est maintenant définitivement prêt à travailler avec des macros



Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 juil. 2014 à 09:44
MERCI,DE RIEN !!!
0
viandax Messages postés 2 Date d'inscription lundi 7 juillet 2014 Statut Membre Dernière intervention 10 juillet 2014
10 juil. 2014 à 15:52
Excuse moi, je l'ai fait, mais cela a du mal fonctionner depuis mon travail, je m'en excuse, je suis impardonnable... Ceci étant dit je te remercie pour ton bout de code, il correspond grosso modo à ce que je veut faire, juste quelques détails à modifier et cela devrait aller. Encore merci pour ta réponse rapide (toi !)
0