fonction avancées en macro

  • Initiateur de la discussion Initiateur de la discussion mistralincoming
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mistralincoming

Guest
je vous joint mon fichier
il faudrait que j'arrive à enregistrer des données corrigées dans une base déjà éxistante à la bonne ligne
comment lui faire dire cherche la ligne où il y a tel nom,
et recopie les données dessus?

merci
 
Dernière modification par un modérateur:
Re : fonction avancées en macro

Re-,
peut-être :

Code:
Sub creation_fournisseur()
Application.ScreenUpdating = False
Derlig = Sheets("Base rens tarifs fournisseurs ").[A65000].End(xlUp).Row + 1
Sheets("création Fiche Fournisseur").Range("U52:U307").Copy
Sheets("Base rens tarifs fournisseurs ").Select
Range("A" & Derlig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Dim pl As Range
Set pl = Range("A3:IV" & Derlig)
pl.Name = "zone_de_tri_tarifs"
Set pl = Range("B3:B" & Derlig)
pl.Name = "fournisseurs2"
Range(" zone_de_tri_tarifs").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
, Order2:=xlAscending, Header:=xlGuess
Derlig = Sheets("Base rens gen Fournisseurs").[A65000].End(xlUp).Row + 1
Sheets("création Fiche Fournisseur").Range("U1:U51").Copy
Sheets("Base rens gen Fournisseurs ").Select
Range("A" & Derlig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Set pl = Range("A3:AY" & Derlig)
pl.Name = "zone_de_tri_renseignements_generaux_fournisseurs"
Set pl = Range("B3:B" & Derlig)
pl.Name = "fournisseurs"
Range("zone_de_tri_renseignements_generaux_fournisseurs").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
, Order2:=xlAscending, Header:=xlGuess
Sheets("création Fiche Fournisseur").Union(Range( _
"K58:M58,K60:M60,K62:M62,K64:M64,K66:M66,I7:Q27,C7 :E7,C9:E9,C11:E11,C16:E16,C18:E18,C20:E20,C25:E25, C26:E26,C27:E27,C28:E28,K36:M36,D33,D35,D37,D39,D4 1,D43,C47:E47,C49:E49,C51:I51,H47,H49:I49,K47:L47, L49:O49,C56:E56,C58:E58" _
), Range("C60:E60,C62:E62,C64:E64,C66:E66,K56:M56")).ClearContents
Sheets("commentaires").Range("C5:M55").ClearContents
Sheets("création Fiche Fournisseur").Select
End Sub

mais comme je ne peux la tester.....
Si bug, reviens
 
Re : fonction avancées en macro

bonsoir
si tu peux jeter un coup d'oeil

Sub completer()
With Sheets("Base rens tarifs fournisseurs ")
x = .Range("fournisseurs2").Find(What:=Range("fourn").Value, LookIn:=xlValues, LookAt:= _
xlWhole).Row
i = 1
For Each cel In Range("F59:F313")
If cel.Value <> "" Then .Cells(x, i).Value = cel.Value
i = i + 1: If i = 2 Then i = 3
Next cel
End With
End Sub

le soucis que j'ai, c'est que sur ma 2ème feuille, (la suite de ma base), fournisseurs2 est en première colonne, et lorsque j'active la correction de données avec ta macro, les nouvelles données se copie en première colonne; comment je peux décaler d'un cran stp
merci
 
Re : fonction avancées en macro

Bonjour,
essaie avec :

Code:
Sub completer()
With Sheets("Base rens tarifs fournisseurs ")
x = .Range("fournisseurs2").Find(What:=Range("fourn").Value, LookIn:=xlValues, LookAt:= _
xlWhole).Row
i = 1
For Each cel In Range("F59:F313")
If cel.Value <> "" Then .Cells(x, i + 1).Value = cel.Value
i = i + 1
Next cel
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour