Insérer ligne blanche dans liste aléatoire sans affecter colonnes voisines

  • Initiateur de la discussion Initiateur de la discussion rcan7412
  • 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 !

rcan7412

XLDnaute Occasionnel
Bonsoir,

J'importe une liste de données de longueur aléatoire dans une feuille de calcul via du code vba. Par exemple, des données dans les colonnes B C D E, sur un certain nombre de lignes qui varie d'import à import.

Je souhaiterais insérer une rupture d'une ou deux lignes blanches à chaque changement de données dans la colonne B.

Des formules figurent dans les colonnes A F G qui s'appliquent aux données importées des colonnes B C D E.

Si j'insère des lignes par déplacement, les formules des colonnes A F G sont modifiées.

Comment éviter pareil problème ?

J'ai bien une idée. Je place les formules dans d'autres cellules, que je copie automatiquement à chaque importation dans les colonnes A F G.

N'y-a-t-il pas un moyen plus convivial ?

Merci pour votre aide

Rodolphe
 
Re : Insérer ligne blanche dans liste aléatoire sans affecter colonnes voisines

Le pied serait d'insérer la ligne blanche à chaque changement de comptes.NATU, soit avant de placer les données dans la feuille xl. Le problème est que la liste obtenue via la requête sql doit être triée selon un tri personnalisé dans xl. Et si on insérère les lignes blanches en xl, on affecte les formules 🙁 😕

Code:
Private Sub DnaBalance()
'importation de la balance des comptes à dna via fichier comptes.dbf et lign.dbf
Application.ScreenUpdating = False
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Chemin As String, Cible As String, comptes As String, lign As String, DATEDEB As String, DATEFIN As String
Dim Fld As ADODB.Field
Dim i As Integer
If ComboBox1.ListIndex = -1 Then Exit Sub
Chemin = "C:\evolution\" & ComboBox1.List(ComboBox1.ListIndex, 1)
comptes = "comptes.dbf"
lign = "lign.dbf"
DATEDEB = CStr(Format(Worksheets("EVOL").Range("B3"), "yyyy-mm-dd"))
DATEFIN = CStr(Format(Worksheets("EVOL").Range("B4"), "yyyy-mm-dd"))
 
'efface la feuille dna
Sheets("ListeDna").Select
Range("a24:e84").Select
Selection.ClearContents
 
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & _
Chemin & ";"
Cible = "SELECT comptes.NATU, comptes.COMP,comptes.INTI, comptes.DNA, sum(lign.DEBI-lign.CRED)AS MONTANT  " & " FROM lign, comptes where comptes.COMP=lign.NUMC and ((lign.DECR>={d '" & DATEDEB & "'} And lign.DECR<={d '" & DATEFIN & "'})) and comptes.NATU <>'' GROUP BY comptes.COMP, comptes.INTI, comptes.NATU, comptes.DNA  ORDER BY comptes.NATU, comptes.COMP"
Set Rs = New ADODB.Recordset
 
With Rs
  .ActiveConnection = Cn
  .Open Cible, , adOpenStatic, adLockOptimistic, adCmdText
End With
 
Do While Not Rs.EOF
Sheets("ListeDna").Range("a24").CopyFromRecordset Rs
Loop
 
'trie les dna en fonction de la liste personnalisée suivant la déclaration fiscale
Sheets("ListeDna").Select
Range("a24:e84").Select
ActiveWindow.SmallScroll Down:=-12
Selection.Sort Key1:=Range("a24"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=11, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortTextAsNumbers
Sheets("DNA").Select
Range("A1").Select
 
Rs.Close
Cn.Close
Application.ScreenUpdating = True
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

Discussions similaires

Retour