Je soutiens Excel Downloads
Connexion
S'inscrire
Effectuez une recherche sur Excel Downloads...
Effectuez une recherche sur Excel Downloads...
Rechercher dans les titres uniquement
Par:
FORUMS
Nouveaux messages
Rechercher dans les forums
TÉLÉCHARGEMENTS
POUR LES PROFESSIONNELS
Gestion commerciale
Gestion de projets
Gestion du personnel
Tableaux de bord
Comptabilité
Immobilier
Bourse
POUR LES PARTICULIERS
Budgets et comptes
Plannings et calendriers
UTILITAIRES
LEÇONS ET TUTORIAUX
Fonctions Excel
Vba
RESSOURCES PEDAGOGIQUES
Rechercher une ressource
ACTUALITÉS
TUTOS
EXCEL
FORMULES ET FONCTIONS
VBA
POWER QUERY
POWER PIVOT
POWER BI
AUTRES APPLICATIONS
Recherche de tutos vidéos
Connexion
S'inscrire
Quoi de neuf
Effectuez une recherche sur Excel Downloads...
Effectuez une recherche sur Excel Downloads...
Rechercher dans les titres uniquement
Par:
Nouveaux messages
Rechercher dans les forums
Menu
Connexion
S'inscrire
Installer l'application
Installer
FORUMS
Questions
Forum Excel
Aide Macro VBA - Reporter valeurs Feuille 1 dans une autre feuille 2 à partir d'une certaine cellule
JavaScript est désactivé. Pour une meilleure expérience, veuillez activer JavaScript dans votre navigateur avant de continuer.
Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="jo77" data-source="post: 20476639" data-attributes="member: 365060"><p>Bonjour à vous,</p><p></p><p>Je bloque depuis un petit moment sur une macro que j'aimerai faire.</p><p>Sauf erreur de ma part, aucune formule Excel ne me permet de le faire.</p><p>C'est un peu l'équivalent d'un recherche V sauf que j'ai plusieurs lignes différentes à reporter sur une autre feuille.</p><p></p><p>Pour faire simple, voici les étapes en français :</p><p>Rechercher la valeur d'une cellule de la feuille 2 dans la colonne A de la feuille 1</p><p>Si la valeur est présente, alors recopier seulement les données des lignes de la colonne D, G, H, I, K.</p><p>Dans les colonnes C, D, E, F, G à partir de la cellule C86</p><p></p><p>La Macro ci-après fonctionne bien. Mais me recopie les valeurs à partir de C2. Or j'en ai besoin à partir de C86.</p><p></p><p>Merci pour votre aide <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p>[CODE=vb]Option Explicit</p><p></p><p>Sub test()</p><p>Dim x As Long</p><p>Dim y As Long</p><p>Dim c As Range</p><p>Dim rdata As Range</p><p></p><p>' Déterminer la dernière ligne de la Feuille 1</p><p>x = Sheets("Actions - Risques").Range("A65536").End(xlUp).Row</p><p>' Déterminer la dernière ligne de la Feuille 2 + 1</p><p>y = Sheets("feuil5").Range("C65536").End(xlUp).Row + 1</p><p></p><p>' Déterminer la Plage de référence dans la Feuille 1</p><p>' dans la Colonne B ... à partir de la ligne 2 jusqu'à x</p><p>Set rdata = Sheets("Actions - Risques").Range("A2:A" & x)</p><p></p><p>' Effacer les anciennes lignes des anciennes demandes</p><p>If y >= 2 Then Sheets("feuil5").Range("A2:G" & y).ClearContents</p><p></p><p>' Boucle dans la plage de référence</p><p>For Each c In rdata</p><p> ' Si la valeur de la cellule est égale à la</p><p> ' valeur choisie en F2 de la Feuille 2</p><p> If c.Value = Sheets("feuil5").Range("I13").Value Then</p><p> ' dans ce cas, copier depuis la Feuille 1, la plage A:D</p><p> ' vers la Feuille 2 dans la Colonne A à la premiére ligne libre</p><p> Sheets("Actions - Risques").Range("D" & c.Row).Copy Destination:=Sheets("feuil5").Range("C" & y)</p><p> Sheets("Actions - Risques").Range("G" & c.Row).Copy Destination:=Sheets("feuil5").Range("D" & y)</p><p> Sheets("Actions - Risques").Range("H" & c.Row).Copy Destination:=Sheets("feuil5").Range("E" & y)</p><p> Sheets("Actions - Risques").Range("I" & c.Row).Copy Destination:=Sheets("feuil5").Range("F" & y)</p><p> Sheets("Actions - Risques").Range("K" & c.Row).Copy Destination:=Sheets("feuil5").Range("G" & y)</p><p> </p><p> End If</p><p> ' Recalculer la première ligne libre de la Feuille 2</p><p> y = Sheets("feuil5").Range("c65536").End(xlUp).Row + 1</p><p></p><p>' Retour de la boucle pour passer à la cellule suivante</p><p>Next c</p><p></p><p>End Sub[/CODE]</p></blockquote><p></p>
[QUOTE="jo77, post: 20476639, member: 365060"] Bonjour à vous, Je bloque depuis un petit moment sur une macro que j'aimerai faire. Sauf erreur de ma part, aucune formule Excel ne me permet de le faire. C'est un peu l'équivalent d'un recherche V sauf que j'ai plusieurs lignes différentes à reporter sur une autre feuille. Pour faire simple, voici les étapes en français : Rechercher la valeur d'une cellule de la feuille 2 dans la colonne A de la feuille 1 Si la valeur est présente, alors recopier seulement les données des lignes de la colonne D, G, H, I, K. Dans les colonnes C, D, E, F, G à partir de la cellule C86 La Macro ci-après fonctionne bien. Mais me recopie les valeurs à partir de C2. Or j'en ai besoin à partir de C86. Merci pour votre aide :) [CODE=vb]Option Explicit Sub test() Dim x As Long Dim y As Long Dim c As Range Dim rdata As Range ' Déterminer la dernière ligne de la Feuille 1 x = Sheets("Actions - Risques").Range("A65536").End(xlUp).Row ' Déterminer la dernière ligne de la Feuille 2 + 1 y = Sheets("feuil5").Range("C65536").End(xlUp).Row + 1 ' Déterminer la Plage de référence dans la Feuille 1 ' dans la Colonne B ... à partir de la ligne 2 jusqu'à x Set rdata = Sheets("Actions - Risques").Range("A2:A" & x) ' Effacer les anciennes lignes des anciennes demandes If y >= 2 Then Sheets("feuil5").Range("A2:G" & y).ClearContents ' Boucle dans la plage de référence For Each c In rdata ' Si la valeur de la cellule est égale à la ' valeur choisie en F2 de la Feuille 2 If c.Value = Sheets("feuil5").Range("I13").Value Then ' dans ce cas, copier depuis la Feuille 1, la plage A:D ' vers la Feuille 2 dans la Colonne A à la premiére ligne libre Sheets("Actions - Risques").Range("D" & c.Row).Copy Destination:=Sheets("feuil5").Range("C" & y) Sheets("Actions - Risques").Range("G" & c.Row).Copy Destination:=Sheets("feuil5").Range("D" & y) Sheets("Actions - Risques").Range("H" & c.Row).Copy Destination:=Sheets("feuil5").Range("E" & y) Sheets("Actions - Risques").Range("I" & c.Row).Copy Destination:=Sheets("feuil5").Range("F" & y) Sheets("Actions - Risques").Range("K" & c.Row).Copy Destination:=Sheets("feuil5").Range("G" & y) End If ' Recalculer la première ligne libre de la Feuille 2 y = Sheets("feuil5").Range("c65536").End(xlUp).Row + 1 ' Retour de la boucle pour passer à la cellule suivante Next c End Sub[/CODE] [/QUOTE]
Insérer les messages sélectionnés…
Vérification
Répondre
FORUMS
Questions
Forum Excel
Aide Macro VBA - Reporter valeurs Feuille 1 dans une autre feuille 2 à partir d'une certaine cellule
Texte copié dans le presse-papier