OVH Cloud OVH Cloud

Importation automatique de données

13 réponses
Avatar
pascal B
Bonjour à tous,

je souhaite effectuer les choses suivantes :
1) selectionner plusieurs cellule de la feuille "ENCODAGE" et les copier
dans l'ordre sur une même ligne de la Feuille "DOSSIERS", ou je coince c'est
pour qu'il commence chaque série sur une nouvelle ligne à partir de la 1er
cellule en colonne A non vide et qu'il respecte l'ordre sur la ligne.

2) une macro pour que dans la feuille "DOSSIERS" il recherche toutes les
cellules non vides d'une colonne définie et déplace vers la feuille
"DOSSIERS CLOTURE" les lignes complètes qui respectent ce critère.

voilà j'ai parcouru la FAQ sans y trouver la solution ou peut être sans la
voir.

je vous remercie d'avance pour votre aide

salutations.

Pascal

3 réponses

1 2
Avatar
pascal B
Coucou, et oui encore moi ! :)

Merci d'être aussi patient avec moi ! il me reste juste un problème (non pas
me frapper je sais que je suis chiant mais j'ai des lunettes !).

la question 1 est résolue un grand merci.

la question 2 : comme je ne t'ai pas donner assez d'info c'est normal que je
suis embêté :(

1) la macro ne doit pas tenir compte de la premiere ligne car se sont mes
champs (Nom, Adresse etc).
2) la macro vide le contenu de la ligne qui répond à la condition et le
copie dans la feuille de destination que faut-il rajouter dans le code pour
quelle supprime la ligne au lieu de la vider (feuille de départ).

je te remets le code, et je prie pour te remercier de bien vouloir encore
faire cela pour moi.

Sub Enregistrement_accord()
'feuille de départ
feu_dep = "Demandes introduites"
'feuille d'arrivée
feu_arr = "Demandes acceptées"
'colonne à vérifier
colonne = "M"

'avec la feuille de départ
With Sheets(feu_dep)
'l'activer
.Activate
'chercher la dernière ligne et la dernière colonne
Lx = .Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Cx = .Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
'pour vérifier qu'il y a bien concordance avec la colonne
'à vérifier
plagetout = .Range(.Cells(1, 1), .Cells(Lx, Cx)).Address
col1 = .Range(colonne & ":" & colonne).Address
Set check = Application.Intersect(Range(plagetout), Range(col1))
If check Is Nothing Then MsgBox "Zone incompatibles": Exit Sub

'parcourir toutes les lignes ) partir de la fin
For lig = Lx To 1 Step -1
'si la cellule est vide
If Not IsEmpty(.Cells(lig, colonne)) Then
'couper
.Rows(lig & ":" & lig).Cut
'aller sur la feuille d'arivée
Sheets(feu_arr).Activate
'chercher la dernière ligne
On Error Resume Next
lig2 = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
col2 = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
If Err > 0 Then Err.Clear: lig2 = 0
On Error GoTo 0
'coller
Range("A" & lig2 + 1).Select
ActiveSheet.Paste
'retourner sur la feuille de départ
.Activate
End If
Next lig
End With
End Sub

@+
Avatar
FxM
Coucou, et oui encore moi ! :)

Merci d'être aussi patient avec moi ! il me reste juste un problème (non pas
me frapper je sais que je suis chiant mais j'ai des lunettes !).


Oh lui ! Les questions à tiroir....
L'excuse des lunettes ne va pas marcher vu que j'en porte aussi ;o)

la question 1 est résolue un grand merci.

la question 2 : comme je ne t'ai pas donner assez d'info c'est normal que je
suis embêté :(

1) la macro ne doit pas tenir compte de la premiere ligne car se sont mes
champs (Nom, Adresse etc).


Si c'est dans la feuille de départ qu'il ne faut pas en tenir compte :
For lig = Lx To 1 Step -1
devient

For lig = Lx To 2 Step -1


Si c'est dans la feuille de destination :
If Err > 0 Then Err.Clear: lig2 = 0
devient

If Err > 0 Then Err.Clear: lig2 = 1



2) la macro vide le contenu de la ligne qui répond à la condition et le
copie dans la feuille de destination que faut-il rajouter dans le code pour
quelle supprime la ligne au lieu de la vider (feuille de départ).


.Activate
.Rows(lig & ":" & lig).delete shift:=xlup '<----- ici

' .Rows(lig).Delete Shift:=xlUp 'à tester
End If
Next lig


A tester sur une copie du classeur mais ca devrait le faire.

@+
FxM

Avatar
pascal B
Un seul mot MERCI !

avoue que tu as eu peur en voyant encore un de mes messages ! :o)

merci pour le temps que tu m'as consacré, j'espère un jour avoir autant de
connaissances que toi et pouvoir a mon tour partager avec d'autres.

je vous félicite tous pour le travail que vous faites c'est un super forum

salutations

Pascal le soulagé
1 2