Copier lignes d'1 feuille à une autre ss cond
Résolu
Pat 59
-
Pat_59 Messages postés 26 Statut Membre -
Pat_59 Messages postés 26 Statut Membre -
Bonjour,
Je suis novice en VBA et je cherche à copier coller des lignes de feuilles différentes (8 excactements) sur une autre feuille (recap en quelque sorte) lorsqu'une cellule sur une de ces lignes est différentes de 0.
Je ne sais pas si j'ai été assez clair?
Pour être un peu plus clair: j'ai un classeur qui me donne des factures en fonction des bons de livraison. Le probléme est que je peus avoir plusieurs livraisons dans un mois et je souhaite n'avoir q'une seule facture par mois.
Voila, pas facil d'expliquer clairement mon probléme, j'ai maintenant besoin de l'aide de personnes plus expérimentées que moi en VBA.
Merci d'avance
Je suis novice en VBA et je cherche à copier coller des lignes de feuilles différentes (8 excactements) sur une autre feuille (recap en quelque sorte) lorsqu'une cellule sur une de ces lignes est différentes de 0.
Je ne sais pas si j'ai été assez clair?
Pour être un peu plus clair: j'ai un classeur qui me donne des factures en fonction des bons de livraison. Le probléme est que je peus avoir plusieurs livraisons dans un mois et je souhaite n'avoir q'une seule facture par mois.
Voila, pas facil d'expliquer clairement mon probléme, j'ai maintenant besoin de l'aide de personnes plus expérimentées que moi en VBA.
Merci d'avance
A voir également:
- Copier lignes d'1 feuille à une autre ss cond
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Comment imprimer en a5 sur une feuille a4 - Guide
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
55 réponses
C'est bien Sheets("facture").cells(Val,10)
la variable i s'applique aux autres feuilles mais pas à celle là
je regarde à quoi correspond une erreur 13 et je te dit
et pour répondre à ta question...
Non on nomme pas la cellule
Je crée une variable
chaque foi que tu copies une ligne tu ajoute à cette variable le contenue la cellule colonne 10 de ta nouvelle ligne
A la fin de ta fonction la variable Tot doit avoir la valeur de la somme de ta colonne 10
Lance la sub une foi et vérifie manuellement avec la fonction somme d'excel si les résultats correspondent...
et dit moi ce qu'il en est
la variable i s'applique aux autres feuilles mais pas à celle là
je regarde à quoi correspond une erreur 13 et je te dit
et pour répondre à ta question...
Non on nomme pas la cellule
Je crée une variable
chaque foi que tu copies une ligne tu ajoute à cette variable le contenue la cellule colonne 10 de ta nouvelle ligne
A la fin de ta fonction la variable Tot doit avoir la valeur de la somme de ta colonne 10
Lance la sub une foi et vérifie manuellement avec la fonction somme d'excel si les résultats correspondent...
et dit moi ce qu'il en est
Pat_59
Messages postés
26
Statut
Membre
ça ne foncionne pa j'ai cette erreur 13, donc je ne peus pas vérifier!!!
chez moi ya pas d'erreur
keske il te dit quand il t'annonce erreur 13
et quelle ligne et surlignée en jaune??
essaye de mettre Tot = 0 juste sous le sub() avant le premier For
keske il te dit quand il t'annonce erreur 13
et quelle ligne et surlignée en jaune??
essaye de mettre Tot = 0 juste sous le sub() avant le premier For
Voila ce que j'ai comme code:
Dim val As Integer
val = 14
Dim Tot As Single
For i = 14 To 61
If i <> 47 Then
For j = 10 To 17
If Sheets(j).Cells(i, 9) <> 0 Xor Sheets(j).Cells(i, 9) = " " Then
Sheets(j).Rows(i).Copy
Sheets("FACTURE").Select
Sheets("FACTURE").Rows(val).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
val = val + 1
End If
Next j
End If
Next i
Sheets("FACTURE").Cells(val, 10) = Tot
message d'erreur: erreur d'execution "13"
incompabilité de type
C cette ligne qui est en jaune: Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
Dim val As Integer
val = 14
Dim Tot As Single
For i = 14 To 61
If i <> 47 Then
For j = 10 To 17
If Sheets(j).Cells(i, 9) <> 0 Xor Sheets(j).Cells(i, 9) = " " Then
Sheets(j).Rows(i).Copy
Sheets("FACTURE").Select
Sheets("FACTURE").Rows(val).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
val = val + 1
End If
Next j
End If
Next i
Sheets("FACTURE").Cells(val, 10) = Tot
message d'erreur: erreur d'execution "13"
incompabilité de type
C cette ligne qui est en jaune: Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Juste pour voir si ça change qqchose essaye d'enlever ce code et de relancé la fonction...
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Si c'es ça le problème fais ces modif...
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
val = val + 1
Si ya tjs cette erreur essaye de m'envoyer ton fichier excel que je puisse essayer sur le vrai modèle
parce que les essais que j'ai fais de mon coté fonctionne bien...
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Si c'es ça le problème fais ces modif...
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
val = val + 1
Si ya tjs cette erreur essaye de m'envoyer ton fichier excel que je puisse essayer sur le vrai modèle
parce que les essais que j'ai fais de mon coté fonctionne bien...
Tu comprend peu être mieu ce que je veus, non?
Ta une solution pour les sous totaux et total général?
Ta une solution pour les sous totaux et total général?
Allez c bon cette foi on l'a... voilà le code un peu modifié
Private Sub CommandButton14_Click()
Dim i As Integer
Dim j As Integer
Dim val As Integer
val = 14
Dim Tot As Single
For i = 14 To 61
If i <> 47 Then
For j = 10 To 17
If Sheets(j).Cells(i, 9).Value <> "" Then 'pas d'espace entre les guillemets...
If Sheets(j).Cells(i, 9).Value <> 0 Then
Sheets(j).Rows(i).Copy
Sheets("FACTURE").Select
Sheets("FACTURE").Rows(val).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
val = val + 1
End If
End If
Next j
End If
Next i
Sheets("FACTURE").Cells(val, 10) = Tot
End Sub
Avec ça c bon
fais attention aussi ... dans ta colonne 9 (i) correspondant au nombre de jours certaine cellule sont au format monaitaire (0.00€) et écrite en blanc ...invisible sur fond blanc...donc faut les remettre en format standard sinon il ne verra pas qu'elle sont vide
Même problème avec certaine cellule de ta colonne 10
Private Sub CommandButton14_Click()
Dim i As Integer
Dim j As Integer
Dim val As Integer
val = 14
Dim Tot As Single
For i = 14 To 61
If i <> 47 Then
For j = 10 To 17
If Sheets(j).Cells(i, 9).Value <> "" Then 'pas d'espace entre les guillemets...
If Sheets(j).Cells(i, 9).Value <> 0 Then
Sheets(j).Rows(i).Copy
Sheets("FACTURE").Select
Sheets("FACTURE").Rows(val).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Tot = Tot + Sheets("FACTURE").Cells(val, 10).Value
val = val + 1
End If
End If
Next j
End If
Next i
Sheets("FACTURE").Cells(val, 10) = Tot
End Sub
Avec ça c bon
fais attention aussi ... dans ta colonne 9 (i) correspondant au nombre de jours certaine cellule sont au format monaitaire (0.00€) et écrite en blanc ...invisible sur fond blanc...donc faut les remettre en format standard sinon il ne verra pas qu'elle sont vide
Même problème avec certaine cellule de ta colonne 10
Désolé je n'avait pas vu ton message!
Tu as quand même réussi à ouvrir le fichier?
Je ne comprend pas, je viens de tester avec le code que tu m'a donné mais j'ai toujours le probléme, erreur 13!!!
Tu as quand même réussi à ouvrir le fichier?
Je ne comprend pas, je viens de tester avec le code que tu m'a donné mais j'ai toujours le probléme, erreur 13!!!
regarde dans facture 1 colonne 9 ligne 44 et met 0 ou "" ou rien
en fait le double guillement correspond à cellule vide
tu n'as pas besoin de mettre ="" dans les cellules que tu veux laisser vide
tu n'as d'ailleur pas besoin de mettre 0 non plus...
si ça bug note le i, le j et le val que te donne vba (il suffit de mettre le curseur sur la variable quand tu as la ligne jaune de bug et il te donne sa valeur) et envoie les moi
en fait le double guillement correspond à cellule vide
tu n'as pas besoin de mettre ="" dans les cellules que tu veux laisser vide
tu n'as d'ailleur pas besoin de mettre 0 non plus...
si ça bug note le i, le j et le val que te donne vba (il suffit de mettre le curseur sur la variable quand tu as la ligne jaune de bug et il te donne sa valeur) et envoie les moi
ça y'est c bon ça fonctionne, merci beaucoup!!!
En fait maintenan je vais utiliser ce code pour chaque sous partie et apré il fodrai que j'arrive a faire la somme des sous totaux, comme dans les facture 1 à 8.
En fait maintenan je vais utiliser ce code pour chaque sous partie et apré il fodrai que j'arrive a faire la somme des sous totaux, comme dans les facture 1 à 8.