Copier en valeurs une plage sous une autre plage
Résolu
Koalacid
Messages postés
70
Statut
Membre
-
Koalacid Messages postés 70 Statut Membre -
Koalacid Messages postés 70 Statut Membre -
Bonjour,
Je débute sous VBA, et après avoir un peu testé par-ci par-là des combines, j'aimerais en apprendre encore plus.
Je me casse la tête en ce moment pour créer une macro qui copie une plage d'une feuille sur une autre feuille (copier/coller en valeurs) mais en-dessous de la plage précédente occupée. C'est pour créer un historique des données.
J'ai repéré des macros qui me conviennent bien sur le forum mais ne font pas exactement ce que je veux. Pouvez m'aider en me présentant et m'expliquant un code? Vu que je débute avec VBA je ne connais même pas le language VBA :S
Voici sur quoi je me base tout essayant de l'adapter (merci ccm81).
Je vous remercie pour votre aide,
Koala
Je débute sous VBA, et après avoir un peu testé par-ci par-là des combines, j'aimerais en apprendre encore plus.
Je me casse la tête en ce moment pour créer une macro qui copie une plage d'une feuille sur une autre feuille (copier/coller en valeurs) mais en-dessous de la plage précédente occupée. C'est pour créer un historique des données.
J'ai repéré des macros qui me conviennent bien sur le forum mais ne font pas exactement ce que je veux. Pouvez m'aider en me présentant et m'expliquant un code? Vu que je débute avec VBA je ne connais même pas le language VBA :S
Voici sur quoi je me base tout essayant de l'adapter (merci ccm81).
Public Sub BC1()
Dim i As Integer, derlig As Long
With Sheets("feuil1")
For i = 1 To 10
If Not IsEmpty(.Range("F" & i)) And .Range("B" & i).Value = "" And .Range("C" & i).Value = "" Then
derlig = Sheets("feuil2").Range("A65536").End(xlUp).Row + 1
.Rows(i).Copy Sheets("feuil2").Range("A" & i)
End If
Next i
End With
End Sub
Je vous remercie pour votre aide,
Koala
A voir également:
- Copier en valeurs une plage sous une autre plage
- Comment copier une vidéo youtube - Guide
- Photo plage pix ✓ - Forum Google Chrome
- Dessin sms copier coller zizi ✓ - Forum Réseaux sociaux
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image d’ours polaire sur une image de plage. retrouvez l'image originale de la plage. que cache l'ours polaire ? - Forum Loisirs / Divertissements
- Manchots sur une image de plage ✓ - Forum Matériel & Système
3 réponses
Bonjour,
Voici ton code commenté et corrigé :
Voici ton code commenté et corrigé :
Public Sub BC1() 'variables Dim i As Integer, derlig As Long 'ici on travaille dans la feuille Feuil1 => feuille concernée par le "copié" With Sheets("feuil1") 'concerne les lignes de la Feuil1 de 1 à 10 For i = 1 To 10 'si, dans ces lignes F n'est pas vide, B = "" (égale rien), C = "" Alors If Not IsEmpty(.Range("F" & i)) And .Range("B" & i).Value = "" And .Range("C" & i).Value = "" Then 'derlig est une variable qui va contenir le numéro de la première ligne vide de la feuil2 colonne A (là ou on va coller) derlig = Sheets("feuil2").Range("A65536").End(xlUp).Row + 1 'Copié - collé .Rows(i).Copy Sheets("feuil2").Range("A" & derlig) 'j'ai remplacé i par derlig (ou coller les données) End If Next i End With End Sub
Yes, merci!
Je vais tester ça cet après-midi.
En tout cas c'est devenu bien plus clair comme ça.
C'est toujours mieux de savoir exactement ce qu'on est entrain de coder plutôt que de bêtement recopier! ^^
Koala
Je vais tester ça cet après-midi.
En tout cas c'est devenu bien plus clair comme ça.
C'est toujours mieux de savoir exactement ce qu'on est entrain de coder plutôt que de bêtement recopier! ^^
Koala
Heelo,
Je m'excuse du retard, j'ai été assez pris ces derniers temps.
Lorsque j'exécute la macro, elle me renvoie un message sur la ligen de code qui ne fonctionne pas (surlignée en jaune).
Cette partie:
J'ai pourtant changé le nom de la feuil2 en Histo.
Je ne vois pas ce qu'il y a d'incorrect.
Merci encore
Cordialement,
Je m'excuse du retard, j'ai été assez pris ces derniers temps.
Lorsque j'exécute la macro, elle me renvoie un message sur la ligen de code qui ne fonctionne pas (surlignée en jaune).
Cette partie:
derlig = Sheets("feuil2").Range("A65536").End(xlUp).Row + 1
J'ai pourtant changé le nom de la feuil2 en Histo.
Je ne vois pas ce qu'il y a d'incorrect.
Merci encore
Cordialement,
Alors je viens d'arriver à supprimer le message d'erreur, donc je ne peux plus te dire.
Par contre la macro n'enclenche le copier/coller que d'une seule ligne. Coment pourrais-je sélectionner tout une plage depuis la cellule A6 à la cellule BQ19?
Je suis perdu dans le code que tu m'as donné, à quel moment tu as saisi les info pour que la macro choisisse telle ou telle ligne?
Par contre la macro n'enclenche le copier/coller que d'une seule ligne. Coment pourrais-je sélectionner tout une plage depuis la cellule A6 à la cellule BQ19?
Je suis perdu dans le code que tu m'as donné, à quel moment tu as saisi les info pour que la macro choisisse telle ou telle ligne?
D'accord.
Et les lignes:
Ce sont les tests pour savoir s'il peut prendre ces lignes et les copier.
Je comprend ces lignes de code comme ça:
Si la colonne F n'est pas vide et que les colonnes B et C sont égales à rien, alors la macro copie les lignes 1 à 10.
Et les lignes:
For i = 1 To 10
'si, dans ces lignes F n'est pas vide, B = "" (égale rien), C = "" Alors
If Not IsEmpty(.Range("F" & i)) And .Range("B" & i).Value = "" And .Range("C" & i).Value = "" Then
'derlig est une variable qui va contenir le numéro de la première ligne
Ce sont les tests pour savoir s'il peut prendre ces lignes et les copier.
Je comprend ces lignes de code comme ça:
Si la colonne F n'est pas vide et que les colonnes B et C sont égales à rien, alors la macro copie les lignes 1 à 10.