Automatisation VBA boucle for

lulu -  
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je me trouve actuellement face a une difficulté si quelqu'un peut m'aider.

en effet j'aimerais pour une feuille excel contenant des chiffres faire la différence des chiffre de la premier ligne avec ceux de la deuxieme ligne et mettre le résulta dans l'autre feuille excel. voici un exemple illustratif:

A B C D
8 3 5 7 est la ligne 1
2 4 2 4 est la ligne 2

ainsi dans la feuille 2 j'aurais comme resultat:

A B C D
6 -1 3 3 est la ligne 1 de feuil 2

mon bout de code est le suivant :

Worksheets(2).Range("A1").Value = Worksheets(1).Range("A1").Value - Worksheets(1).Range("A2").Value

Malheureusement il ne marche que pour une cellul. pas tres fort a construire des boucle qui pourrais m'aider a automatiser le resulta je solicite votre aide .

Cordialement.
A voir également:

1 réponse

chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

Sub SoustraitLignes()
Dim dercol as Integer
Dim nbcol As Interger

dercol = Range("A" & columns.Count).End(xlToLeft).Column

for nbcol = 1 to Dercol
     Worksheets(2).Cells(1,nbcol) = Worksheets(1).Cells(1, nbcol) - Worksheets(1).Cells(2,nbcol)

Next 

End Sub


Cordialement.
0
lulu
 
salut
merci pour ta reponse chaussette9. mais ton code fais la meme chose que le mien c'est a dire il ne donne que le résulta de la difference des deux lignes de la premiere colone. le résultat des autres colone ne sont pas afficher. car en une seul compilation je veux tous ces résultat c'est a dir une automatisation.
Pitier y'aurais t'il quelqu'un pour m'aider???????
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Remplacer
dercol = Range("A" & columns.Count).End(xlToLeft).Column
par
dercol = Worksheets(1).Range("A" & columns.Count).End(xlToLeft).Column 


et ajouter nbcol derrière le Next.

Et ça devrait fonctionner. Je viens de le tester chez moi, ça marche.
0
lulu
 
toujour pas malgré plusieur recherche peut etre ai je omis un truc . pass moi ton code intégral afin que je puisse l'analyser.
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
une méthode différente, qui ne fonctionne que s'il n'y a pas de cases vides dans la ligne A :
Sub SoustraitLignes()
Dim dercol As Integer
Dim nbcol As Integer


'détermine la dernière colonne de données
dercol = Worksheets(1).Range("A" & 1).End(xlToRight).Column

'pour chaque colonne
For nbcol = 1 To dercol
    ' on soustrait la ligne 2 à la ligne 1, et on affiche le résultat en ligne 2 de la seconde feuille
     Worksheets(2).Cells(1, nbcol) = Worksheets(1).Cells(1, nbcol) - Worksheets(1).Cells(2, nbcol)

Next nbcol

End Sub
0