simple copier/coller

MOANA31

XLDnaute Nouveau
Voici ma macro, je veus juste dire si la colonne 1 de ma feuil actualbuget est egal a la colonne 2 de ma feuille base et que la colonne 3 de ma feuills actualbudget est egal a la colonne 4 de ma feuille base alors copir la colonne 6 de la feuille base dans la colonne 14 de la feuille actualbudget;

Pourquoi ca ne marche pas ...
1 personne peut-elle m'aider ...

Sub Macro1()

Set sht = Sheets("actualbudget")
Set sht1 = Sheets("base")

n = Range("a65000").End(xlUp).Row
numlbd = 6
For i = 2 To n

If sht.Cells(i, 1) = sht1.Cells(i, 2) And sht.Cells(i, 3) = sht1.Cells(i, 4) Then
sht.Cells(numlbd, 14) = sht1.Cells(numlbd, 6)


End If

Next i

End Sub
 

Sly le globe trotter

XLDnaute Occasionnel
Re : simple copier/coller

Bonjour,

Dans ton code, une fois tes conditions remplies, tu viens toujours écrire dans la même cellule, sht.Cells(numlbd, 14).

Il faut également indicer les cellules de cette colonne.

Si j'ai bien compris ce que tu cherches à faire, il te faut mettre :
Code:
Sub Macro1()

Set sht = Sheets("actualbudget")
Set sht1 = Sheets("base")

n = Range("a65000").End(xlUp).Row

For i = 2 To n

If sht.Cells(i, 1) = sht1.Cells(i, 2) And sht.Cells(i, 3) = sht1.Cells(i, 4) Then
sht.Cells(i, 14) = sht1.Cells(i, 6)

End If

Next i

End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : simple copier/coller

Bonjour Moana,
For i = 2 To n

If sht.Cells(i, 1) = sht1.Cells(i, 2) And sht.Cells(i, 3) = sht1.Cells(i, 4) Then
sht.Cells(numlbd, 14) = sht1.Cells(numlbd, 6)


End If

Next i
n'utilisant pas l'indice i dans la partie ci-dessus en rouge, et numldb gardant la toujours même valeur dans la boucle, le résultat sera toujours mis dans la même cellule

bon après-midi
à+
Philippe
.

Edit: pour saluer le globe-trotter qui trotte plus vite que moi
 

MOANA31

XLDnaute Nouveau
Re : simple copier/coller

Merci je viens de changer les elements mais rien ne fonctionne ???
Sub macro1()

Set Sht = Sheets("actualbudget")
Set sht1 = Sheets("base")
compteur = 6

For i = 6 To n

n = Range("a65000").End(xlUp).Row




If Sht.Cells(i, 1) = sht1.Cells(i, 2) And Sht.Cells(i, 3) = sht1.Cells(i, 6) Then
Sht.Cells(numlbd, 14) = sht1.Cells(numlbd, 6)
numlbd = numlbd + 1




End If
Next i
End Sub
 

Sly le globe trotter

XLDnaute Occasionnel
Re : simple copier/coller

C'est le mic-mac dans tes colonnes et lignes par rapport à tes explications...

Avec le code suivant
Code:
Sub macro1()

Set Sht = Sheets("actualbudget")
Set sht1 = Sheets("base")
compteur = 6

n = sht1.Range("a65000").End(xlUp).Row
For i = 6 To n

    n = sht1.Range("a65000").End(xlUp).Row

    If Sht.Cells(i, 2) = sht1.Cells(i + 1, 1) And Sht.Cells(i, 4) = sht1.Cells(i + 1, 4) Then
        Sht.Cells(i, 14) = sht1.Cells(i + 1, 6)
    End If
Next i

End Sub

je me suis adapté à ton fichier Excel, et cela fonctionne ;)

Sly
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : simple copier/coller

Re,

déjà , dans ton fichier joint, tu compares des données qui se trouvent à la ligne 6 dans une feuille et à la ligne 7 dans l'autre

ensuite: le égalités éventuellement trouvées sont-elles toujours à la même ligne

mais encore: tu pointes sur une cellule et tu appelles cela "colonne"

et encore tu joins ton fichier sans macro ce qui m'oblige à la recopier afin de pouvoir tester

et enfin: je m'absente pour aller chercher le enfants à l'école

à+
Philippe
 

Statistiques des forums

Discussions
314 450
Messages
2 109 729
Membres
110 553
dernier inscrit
loic55