Aide vba : Comparer deux colonnes A et B et ajouter à B ce qu'il manqu - VB/VBA/VBS - Programmation
Marsh Posté le 17-11-2010 à 08:55:44
S'il vous plaît je remonte car j'ai besoin d'aide, je suis apprenti dans une entreprise et j'en ai besoin. Merci d'avance
Marsh Posté le 18-11-2010 à 17:05:23
je dirais que ta boucle n'est pas bonne
je vais essayé d'en écrire une d'après la tienne...
Edit,
Paye tes Ranges de Ranges merdique
Marsh Posté le 18-11-2010 à 17:55:07
Vite fait,
J'ai réécris parceque j'aime pas les for avec des variables "i"
en fait si tu ne veux pas récupérer ce que je t'ai écris;
t'as juste a ajouter un boolen "trouvé"
pour qu'une fois sorti de ta boucle tu traite le cas ou tu n'as pas trouver ta ligne...
Perso la boucle je l'écrirai comme ça :
|
Marsh Posté le 20-11-2010 à 16:40:27
Je te remercie infiniment Xxxaaavvv . J'essaye ça ce week et je te donne des nouvelles. Comme je suis débutant il me faut un peu de temps avant de comprendre ce que tu as fait.
Marsh Posté le 22-11-2010 à 10:26:21
Salut
Alors j'ai fait ce que tu as dit, j'ai mis un booléan ( car ta vba se bloque à cette ligne strRecherche = CStr(objSource.Cells(objCellSource.Row, objCellSource.Col + 1).Value) blnTrouver = False )
Sub amt()
Dim p As Object, m As Object, I As Integer, J As Integer, blnTrouver As Boolean
Set p = Worksheets("AMT" ).Range("A1:Z1100" )
Set m = Worksheets("lcc casa par sir et ano" ).Range("A2:D1000" )
For I = 1 To 2
For J = 1 To 2
If m.Cells(I, 2).Value = "AMT" Then
If m.Cells(I, 3).Value = p.Cells(J, 1).Value Then
blnTrouver = True
Else
blnTrouver = False
End If
End If
If blnTrouver Then
p.Cells(J, 18).Value = m.Cells(I, 4).Value
Else
Comment dire de rajouter la ligne de lcc dans amt ??
End If
Next J
Next I
End Sub
MAis mon gros probléme c'est que je ne sais pas comment dire a la macro de rajouter la ligne qui manque de lcc a amt.
Par exemple dans lcc j'ai le code erreur 38 mais pas dans la feuille amt et donc je voudrais rajouter cette ligne dans la feuille amt.
Marsh Posté le 24-11-2010 à 11:34:56
Personne pourait m'aider pour l'ajout de la ligne ?
Peut être que j'ai mal expliqué
Fichier 1 Fichier 2
Code erreur Nb erreur Code erreur Nb erreur
39 3 39
40 5 50
50 1 55
55 6 56 15
Au final avec macro je dois avoir dans le fichier 2
Fichier 2
Code erreur Nb erreur
39 3
40 5
50 1
55 6
56 15
Ce qu'il faudrait dans le fichier 2 c'est qu'il recopie le nombre d'erreur à coté du code erreur correspondant (avec la macro que j'ai fait précédement c'est bon) et qu'il rajoute dans ce même fichier 2 les codes erreurs qui sont dans le fichier 1 mais absent du fichier 2, dans mon exemple il manque le code erreur 40 dans le fichier 2
Donc ma macro permet de recopier les nombre d'erreur à coté du bon code erreur mais il ne rajoute pass les lignes manquantes.
Merci d'avance
Marsh Posté le 24-11-2010 à 11:41:02
désolé pas trop le temps de répondre en ce moment
voici une méthode pour copier, et insérer une ligne
|
à toi de l'adapter.
Marsh Posté le 24-11-2010 à 11:46:48
Merci Xxxaaavvv, mais c'est le probléme je n'arrive pas à l'adapter, j'essaye encore puis je vous tiens au courant.
Marsh Posté le 24-11-2010 à 12:37:29
Il te faut le numéro de la ligne que tu veux copier
et le numéro de la ligne ou tu veux insérer.
ensuite ça va de soi.
Marsh Posté le 16-11-2010 à 14:35:49
Slt j’ai besoin de votre aide s’ils vous plait.
Je me casse la tête depuis des jours a trouver une macro en vba capable de faire ce que je vais vous décrire en bas et comme je suis débutant je n’y arrive pas.
J’ai 2 fichiers excel : 1 nommé lcc Casa et l’autre fichier s’appelle suivi evolution.
Ce qu’il faut faire c’est qu’a partir du fichier lcc casa recopier les données dans le fichier suivi evolution.
Or le problème c’est que dans le fichier lcc Casa il y a des codes erreur qui ne sont pas dans le fichiher suivi evolution
Donc ce qu’il faut faire c’est comparer la colone 1 du fichier lcc casa à la colonne 1 du fichier sui evolution et rajouter les lignes qui manque en recopiant les donnés dasn le fichier evolution
J’ai fait une macro pour copier les donnés mais je ne sais pas comment lui dire d’ajouter les lignes manquantes en faite.
Exemple :
Fichier lcc casa Ficher evolution
Code erreur Code erreur
1 1
5 6
6 7
7 8
Donc il faut comparer les 2 colonnes et rajouter la ligne 5 dans le fihcier evolution.
Pouvez vous m'aider ?
Moi j'ai fait ca mais ca ne vous aidera pas car j'ai un peu simplifier le probléme pour que vous puissiez comprendre.
Sub copiedelccaamt()
Dim p As Object, m As Object, I As Integer, J As Integer
Set p = Worksheets("AMT" ).Range("A1:B1100" )
Set m = Worksheets("lcc casa par sir et ano" ).Range("A2:D1000" )
For I = 1 To 1100
For J = 1 To 1100
If m.Cells(I, 2).Value = "AMT" Then
If m.Cells(I, 3).Value = p.Cells(J, 1).Value Then
p.Cells(J, 2).Value = m.Cells(I, 4).Value
End If
End If
Next J
Next I
End Sub
Message édité par viv207 le 16-11-2010 à 14:37:36