Macro copier coller suivant la valeur d'une cellule

Macro copier coller suivant la valeur d'une cellule - VB/VBA/VBS - Programmation

Marsh Posté le 12-08-2015 à 15:24:53    

Bonjour à tous,
étant très novice en VBA, je viens vous demander votre aide pour une macro, qui je pense n'est pas du tout compliquée !
Pour vous expliquer : je dispose d'une feuille excel avec en colonne A des paramètres pour le Solver, et en colonne B un texte (OK) si le paramètre correspondant va me servir.  
L'objectif est de faire une macro, qui dans va chercher dans la colonne B entre les lignes 1 à ... (34 par exemple) si la valeur est "OK" ou si la cellule est vide.  
Si la cellule est "OK" (par exemple B5 = OK), se décaler sur la colonne A (en A5), copier la cellule, et aller la coller (en collage spécial) dans la colonne C (en C5), puis continuer son chemin dans la colonne B jusqu'en 34. En cas de cellule vide, pas de copie.
Je ne peux malheureusement pas utiliser une simple formule, car les cellules en colonne A sont des paramètres pour le solveur, ce qui fait que je n'arrive pas à récupérer le paramètre, mais seulement un "VRAI".
 
En vous remerciant par avance.
Lilian

Reply

Marsh Posté le 12-08-2015 à 15:24:53   

Reply

Marsh Posté le 12-08-2015 à 15:55:30    

 
            Bonjour, bonjour !
 
            Commencer par lire les règles de ce forum !
 
            Si ce n'est pas du tout compliqué, un novice peut justement entreprendre le code !
            Ne pas oublier l'Enregistreur de macros, un précieux outil notamment pour un novice …
 
            Comme le VBA ne lit pas mieux qu'une formule, il est conseillé de favoriser un maximum les formules au code.
            Un code pur VBA est souvent bien moins efficace et plus lent qu'un autre utilisant les fonctionnalités d'Excel !
 

Reply

Marsh Posté le 14-08-2015 à 11:15:04    

Voici une solution !  ;)  
 

Code :
  1. Sub test()
  2. 'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau
  3. Dim NombreLigne As Integer
  4. 'Sélection de la feuille sur laquelle se trouve les données à traiter, ici par exemple Feuil1
  5. Sheets("Feuil1" ).Select
  6. 'Commence par supprimer toutes les valeurs de la colonne C
  7. Columns("C:C" ).ClearContents
  8. 'Enregistrement du nombre de ligne de ton tableau
  9. NombreLigne = InputBox("Nombre de ligne à traiter ?" )
  10. 'Boucle qui va de 1 au nombre total de ligne
  11. For i = 1 To NombreLigne
  12.     'Si la cellule de la ligne i et de la seconde colonne (B) est égale à OK, alors
  13.     If Cells(i, 2) = "OK" Then
  14.         'La valeur de la cellule de la ligne i et de la colonne 1 (A) est recopié sur la même ligne i en colonne 3 (C)
  15.         Cells(i, 3).Value = Cells(i, 1).Value
  16.     'Fin de la condition If
  17.     End If
  18. 'Fin de la boucle For
  19. Next
  20. End Sub


 
Bonne journée !


Message édité par nicolasvba le 14-08-2015 à 11:17:08

---------------
La cuillère n'existe pas
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed