Première programmation VBA

Bonjour tout le monde,

Je suis entrain de débuter sur VBA et je suis entrain de réaliser ma première macro, seulement voilà je bloque et je me suis dis qu'en échangeant avec vous j'apprendrai plus facilement que si je tournais en rond tout seul dans mon coin

Voilà j'ai un tableau avec des opérations d'apport ou de retrait en espèce ou en titres

Chaque fois que dans la colonne M il y a un 1 cela veut dire qu'il faut copier la valeur de la colonne G et la coller dans la colonne C à partir de la ligne 16 pour le compte correspondant

Chaque fois que dans la colonne N il y a un 1 cela veut dire qu'il faut copier la valeur dans la colonne G et la coller dans la colonne D à partir de la ligne 16 pour le compte correspondant

J'ai donc compris qu'il fallait créer une boucle et aussi créer une condition

Sub Macro2()

Range("M2").Select

Do While Columns("M") <> ""

If Columns("M") = 1 Then

Range("G2").Select

Selection.Copy

Range("C16").Select

ActivateSheet.Paste

Loop

Range("N2").Select

Do While Columns("M") <> ""

If Columns("N") = 1 Then

Range("G2").Select

Selection.Copy

Range("C16").Select

ActivateSheet.Paste

Loop

End If

End Sub

Mon problème est que je ne sais pas comment indiquer à Excel d'actualiser les lignes c'est à dire de copier la valeur G2 puis G3 ect dans la cellule C16 puis C17 ou D16 D17 en fonction de l'opération. Je pense qu'il s'agit avant tout de logique et pour le moment je manque de logique dans ma programmation mais ça viendra !

Vous trouverez le fichier en pièce jointes, je vais continuer à essayer de mon côté bien évidemment et comprendre mon erreur !

Merci pour votre temps.

Bonjour henriii, bonjour le forum,

Pour du code, utilise le bouton Code...

Un essai

Sub Macro2()
Dim X As Integer  ' on déclare la variable et son format

For X = 2 To 11  ' boucle sur les ligne 2 à ligne 11
    If Range("M" & X) = 1 Then  ' si M = 1
           ' en C et D on ajoute 14, ce qui est ligne 16 moins le 2 de départ de X
        Range("C" & X + 14) = Range("G" & X)
    Else                          'sinon ...
        Range("C" & X + 14) = "" ' on vide la cellule
    End If

    If Range("N" & X) = 1 Then
        Range("D" & X + 14) = Range("G" & X)
    Else
        Range("D" & X + 14) = ""
    End If
Next X   ' remonte la boucle pour la valeur suivante
End Sub

Joseph

Merci beaucoup de ta réponse.

Je vais pouvoir travailler ça de mon côté, je me doutais bien que la syntaxe était mauvaise !

Bonjour henriii, bonjour le forum,

On est tous passé par là un jour.

Joseph

Bonjour,

Une proposition sans VBA.

Les données sont mises sous forme de tableau (dynamique) et la synthèse effectuée avec un TCD ( tableau croisé dynamique).

Bon, il y a comme même un soupçon de VBA pour l'actualisation du TCD.

Cdlt.

Rechercher des sujets similaires à "premiere programmation vba"